Php Mysql,按字段计数排序
我有一张名为purchased_albums的桌子Php Mysql,按字段计数排序,php,mysql,sorting,Php,Mysql,Sorting,我有一张名为purchased_albums的桌子 id album_id member_id date 4 8 7 2013-12-24 08:17:54 5 9 7 2013-12-29 11:03:35 6 8 10 2013-12-24 08:17:54 我正试图通过购买的专辑来分类。也就是说,它应该计算重复次数最多的唱片集id,并根据该id进行
id album_id member_id date
4 8 7 2013-12-24 08:17:54
5 9 7 2013-12-29 11:03:35
6 8 10 2013-12-24 08:17:54
我正试图通过购买的专辑来分类。也就是说,它应该计算重复次数最多的唱片集id,并根据该id进行排序。我的查询一直返回null
$q="SELECT COUNT(album_id) as tot,album_id,date FROM purchased_albums ORDER BY tot DESC";
您可以使用联接获取每个相册的计数,然后按结果数量排序:
SELECT pa.*
FROM purchased_albums pa
INNER JOIN
(
SELECT COUNT(*) qty_purchased, album_id
FROM purchased_albums
GROUP BY album_id
) c ON pa.album_id = c.album_id
ORDER BY c.qty_purchased DESC
请仔细阅读此代码,您可能会发现您的确切要求
$q="SELECT COUNT(album_id) as tot,album_id,date FROM purchased_albums GROUP BY album_id ORDER BY album_id DESC";
像这样的东西能帮你吗
SELECT `album_id`, `date`, COUNT(*) `purchases`
FROM `purchased_albums`
GROUP BY `album_id`
ORDER BY `purchases` DESC
要挑选购买次数超过3次的相册,请使用
SELECT `album_id`, `date`, COUNT(*) `purchases`
FROM `purchased_albums`
GROUP BY `album_id`
HAVING `purchases` > 3
ORDER BY `purchases` DESC
SELECT `album_id`, `date`, COUNT(*) `purchases`
FROM `purchased_albums`
GROUP BY `album_id`
HAVING `purchases` > 3
ORDER BY `purchases` DESC