sql >> Database teknologi >  >> RDS >> Mysql

SQL-forespørgsel til at sortere og opnå unik optælling

Du kan bruge betinget aggregering som følger:

Select stage, 
       count(case when year = 2019 then 1 end) as year2019, 
       count(case when year = 2020 then 1 end) as year2020 
From
(Select t.*, 
        row_number() over (partition by customer, year
          order by case when dealstage = 'won' the 1 
                        When dealstage = 'contacted' then 2
                       else 3 end) as rn
    From your_table t) t
Where rn = 1
Group by stage;



  1. migrering fra postgres til mysql forårsager mærkelige fejl Mysql2::Fejl:MySQL-serveren er gået væk

  2. MySQL:FEJL 1022 (23000):Kan ikke skrive; dubletnøgle i tabel '#sql-2b8_2'

  3. Har brug for klarhed om hibernate.hbm2ddl.auto=opdatering

  4. Tæl forekomsterne på tværs af flere kolonner