繁体   English   中英

MySQL 从表中选择不同的值,按具有这些不同值的行数排序

[英]MySQL selecting distinct values from a table, ordering by the count of rows with those distinct values

我目前正在处理 MySQL 查询,但我遇到了一些麻烦,正在寻求帮助。 我已经为此苦苦挣扎了一段时间,并从互联网和不同的编码论坛中搜索了解决方案,但是,唉,仍然一无所获。

基本上,我有一个 MySQL 表如下:

Table name: 'data'
'id' SMALLINT(5) auto_increment
'value_1' SMALLINT(5)
'value_2' SMALLINT(5)

'value_2' 列有重复值,因此,我需要找到不同的值来处理结果。 所以我创建了一个 MySQL 查询来做到这一点。

SELECT DISTINCT value_1 FROM data WHERE value_2!="0"

我遇到的问题是我想通过不是 id 或任何其他字段来排序我刚刚获得的结果,而是通过在该列中具有这些特定不同值的行数('value_1')。

有人可以帮助我吗?

您需要的是GROUP BYCOUNT

SELECT `value_1`, COUNT(`value_1`) AS `count` FROM `data` WHERE `value_2` != '0' GROUP BY `value_1` ORDER BY `count`;

有关详细信息,请参阅: http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

SELECT DISTINCT value_1, COUNT(*) FROM data GROUP BY value_1 ORDER BY 2 DESC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM