sql >> Databasteknik >  >> RDS >> Mysql

Hur väljer man ett begränsat antal rader för varje främmande nyckel?

Använd:

SELECT x.feedid
  FROM (SELECT t.feedid,
               CASE WHEN @feed != t.feedid THEN @rownum := 1 ELSE @rownum := @rownum + 1 END AS rank,
               @feed := t.feedid
          FROM TABLE t
          JOIN (SELECT @rownum := NULL, @feed := 0) r
      ORDER BY t.feedid) x
 WHERE x.rank <= 3
 ORDER BY x.feedid
 LIMIT 50

Det som inte är klart är detaljerna om vad du vill ha tillbaka - alla rader i din tabell, eller bara feedid.



  1. "visa skapa tabell" motsvarighet i oracle sql

  2. Få ut det mesta av dina PostgreSQL-index

  3. Vad är SQL och hur kommer man igång med det?

  4. Skapa om en post inte finns, annars uppdatera?