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

Okna Postgres działają z grupowaniem agregującym według

możesz zmienić zapytanie w ten sposób:

with cte1 as (
    SELECT email,
           lower(substring(u.email from position('@' in u.email)+1)) as domain
      FROM questions q
      JOIN identifiers i ON (q.owner_id = i.id)
      JOIN users u ON (u.identifier_id = i.id)
), cte2 as (
    select
        domain, email,
        count(*) as questions_per_email,
        first_value(email) over (partition by domain order by count(*) desc) as top_user
    from cte1
    group by email, domain
)
select domain, top_user, sum(questions_per_email) as questions_per_domain
from cte2
group by domain, top_user

demonstracja skrzypiec SQL




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:aktualizacja z ignorowaniem lewego zewnętrznego self-join

  2. Przekaż wiele zestawów lub tablic wartości do funkcji

  3. Django ORM pozostawia bezczynne połączenia w Postgres DB

  4. Niestandardowa funkcja agregująca

  5. Jak wykonać zapytanie wybierające w bloku DO?