PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgresql Wiele zliczeń dla jednego stołu

możesz użyć case w tym przypadku -

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

To powinno rozwiązać Twój problem

@S T Mohammed,Aby uzyskać taki typ, wystarczy użyć using po group lub where warunek w zewnętrznym zapytaniu, jak poniżej -

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. Jak skonfigurować AppArmor dla PostgreSQL i TimescaleDB?

  2. Typ pola Rails 4 dla wielokrotnego wyboru z predefiniowanymi wartościami

  3. Dzienniki Heroku mówią, że brak modułu o nazwie „urlparse”, gdy używam importu urlparse

  4. Skopiuj bazę danych PostgreSQL do innej bazy danych

  5. Szef kuchni i postgres; jak określić hasło?