sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres Windows-funktion med aggregerad grupp efter

du kan ändra din fråga så här:

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

sql fioldemo




  1. Hur FLOOR() fungerar i MariaDB

  2. Förhindra SQL-injektion i dynamiska kolumnnamn

  3. Hur försäkrar man sig om att det inte finns något rastillstånd i MySQL-databasen när man ökar ett fält?

  4. Problem med att distribuera JBPM 5.4-konsolserver krig mot Websphere-applikationsserver med JPA2-funktionspaket för att använda Oracle-databas