-- Алиасы вычесление в столбцах, применение функций               
  select  a.id, a.login || '  ' || a.login login, 2+2 as summ_
    from account a
   where ( id in (1,2) and login ilike 'BOB') 
  
   
--inner join с конструкцией CASE   
select a.login, p."name" || ' ' || p.surname as fio, 
      to_char(p.dt_birth, 'DD.MM.YYYY') dt_birth, 
      CASE
         when p.sex THEN 'Девушка'      
        ELSE 'Мужчина'
      END as sex, r."name"
  from account a, profile p, role_account ra ,"role" r
 where a.id = p.id_account
   and ra.acconts = a.id
   and ra.roles = r.id

   
-- LEFT JOIN получение при запросе пересечение с NULL строками
-- Запрос представлен в виде таблицы
   select * from  
(  SELECT a.login login, p."name"
     FROM account a
LEFT JOIN profile p ON a.id = p.id_account
    WHERE p."name" is null) null_acc
    where null_acc.login not like 'bob' ;


-- Создание представления в БД на базе 
create view v_account as
SELECT a.login 
FROM account a
where NOT EXISTS (SELECT * FROM profile p
              WHERE  p.id_account = a.id ) 
select * from v_account va;
              

-- Объединение запросов              
union all
SELECT a.login 
FROM account a
where NOT EXISTS (SELECT * FROM profile p
              WHERE  p.id_account = a.id ) 

              
-- Запросы с группировкой  group by, having             
 select ra.roles, count(ra.roles) 
   from account a, role_account ra 
  where a.id = ra.acconts
  group by ra.roles
  having count(ra.roles) > 2 
  
   
   


   
 

   
             

            
      



