2013-07-29 226 views
0

想象,我有2個表,我想計算出最暢銷的藝人:MySQL的嵌套計數聲明

  • 音樂(ID,標題,條形碼)
  • 藝術家(條形碼,藝術家)

    SELECT COUNT(m.barcode) AS sells, m.barcode, artist 
    FROM music m 
    LEFT JOIN artists a 
    ON m.barcode = a.barcode 
    GROUP BY m.barcode ORDER BY sells DESC 
    

該查詢返回如:

sells | barcode | artist 
--------------------------------- 
    1000  123  jdoe 
    500  223  kloe 
    100  321  jdoe 

我該如何計算jdoe複雜地銷售1100首音樂?

預先感謝任何暗示

+1

呃,組由藝術家嗎? – Strawberry

+1

如果您不關心個別條形碼,爲什麼選擇和分組? –

回答

1

你應該改變你的group bybarcodeartist(從select語句中刪除barcode):

SELECT COUNT(m.barcode) AS sells, artist 
FROM music m LEFT JOIN 
    artists a 
    ON m.barcode = a.barcode 
GROUP BY artist 
ORDER BY sells DESC; 
0
SELECT COUNT(m.barcode) AS popular, m.barcode, a.artist, SUM(a.sell) 
FROM `music` AS m 
LEFT JOIN `artists` AS a 
ON (m.barcode = a.barcode) 
WHERE a.artist = 'jdoe' 
GROUP BY m.barcode 
ORDER BY `popular` DESC