PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql Множество броя за една таблица

можете да използвате case в този случай -

SELECT type, 
       sum(case when place  = 'home' then 1 else 0 end) as Home,
       sum(case when  place  = 'school' then 1 else 0 end) as school,
       sum(case when  place  = 'work' then 1 else 0 end) as work,
       sum(case when  place  = 'cafe' then 1 else 0 end) as cafe,
       sum(case when  place  = 'friends' then 1 else 0 end) as friends,
       sum(case when  place  = 'mall' then 1 else 0 end) as mall
  from reports
 group by type

Това трябва да реши проблема ви

@S T Mohammed, За да получим такъв тип, можем просто да използваме using след group или where условие във външната заявка, както по-долу -

select type, Home, school, work, cafe, friends, mall from (
SELECT type, 
       sum(case when place  = 'home' then 1 else 0 end) as Home,
       sum(case when  place  = 'school' then 1 else 0 end) as school,
       sum(case when  place  = 'work' then 1 else 0 end) as work,
       sum(case when  place  = 'cafe' then 1 else 0 end) as cafe,
       sum(case when  place  = 'friends' then 1 else 0 end) as friends,
       sum(case when  place  = 'mall' then 1 else 0 end) as mall
  from reports
 group by type
 )
 where home >0 and School >0 and Work >0 and cafe>0 and friends>0 and mall>0


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Between клауза с колони с низове

  2. Как мога да конфигурирам PostgreSQL да използва Windows Authentication?

  3. Запазване на резултата от динамична заявка, която използва refcursor, в таблица

  4. Правилно съпоставяне между Java LocalDateTime и db

  5. PostgresSQL Nested Loops – Кога планиращият решава да използва Nested Loop, когато прави INNER JOIN?