Mysql 按分组选择中的字段数对SQL查询进行排序
我有这张桌子Mysql 按分组选择中的字段数对SQL查询进行排序,mysql,sql,sorting,Mysql,Sql,Sorting,我有这张桌子 CREATE TABLE `Products` ( `product_id` int(11) NOT NULL AUTO_INCREMENT, `product` varchar(45) DEFAULT NULL, `added_by` varchar(45) DEFAULT NULL, `list_name` varchar(45) NOT NULL, PRIMARY KEY (`product_id`) ) ENGINE=MyISAM AUTO_INCREM
CREATE TABLE `Products` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`product` varchar(45) DEFAULT NULL,
`added_by` varchar(45) DEFAULT NULL,
`list_name` varchar(45) NOT NULL,
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM AUTO_INCREMENT=231 DEFAULT CHARSET=utf8
我需要一个sql查询,这样我就可以得到相同命名产品的组,按哪个组的顶部条目最多,底部条目最少排序
这是我到目前为止得到的,但它只按字母顺序对组进行排序
SELECT product FROM Products GROUP BY product ORDER BY product
我应该在这篇文章的结尾添加什么内容来根据每组中的条目数进行计数和排序
SELECT product, COUNT(*) AS NumberOfEntries
FROM Products
GROUP BY product
ORDER BY NumberOfEntries DESC
阅读有关聚合函数的更多信息
阅读有关聚合函数的更多信息。您可以尝试以下方法:
SELECT product
FROM
(
SELECT product, COUNT( 1 ) AS num_products
FROM products
GROUP BY product
) AS t
ORDER BY num_products DESC
您可以尝试以下方法:
SELECT product
FROM
(
SELECT product, COUNT( 1 ) AS num_products
FROM products
GROUP BY product
) AS t
ORDER BY num_products DESC