2013-07-29 227 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