sql >> Databáze >  >> RDS >> Mysql

Počítejte výskyt pole při zařazení do skupiny 2

Váš dotaz se netýká vašich ukázkových dat; Zdá se však, že chcete agregaci a hodnocení. V MySQL 8.0 byste udělali:

select
    row_number() over(order by count(*) desc) rn,
    order_id,
    count(*) items_in_order
from data
group by order_id
order by rn

První sloupec jsem pojmenoval rn (pro hodnocení ):Najdu id zde je to matoucí, protože sloupec s tímto názvem v tabulce již máte.

V dřívějších verzích jedna možnost používá proměnnou relace místo row_number() :

select @rn := @rn + 1 rn, order_id, items_in_order
from (
    select order_id, count(*) items_in_order
    from data
    group by order_id
    order by items_in_order desc
) t
cross join (select @rn := 0) r
order by items_in_order desc



  1. Použití zobrazení SQL k přidání/úpravě dat v aplikaci Microsoft Access

  2. Dynamický výběr možností php a mysql

  3. Přejmenování sloupce v SQL Server (T-SQL)

  4. IF EXISTS podmínka nefunguje s PLSQL