【问题标题】:MySQL selecting distinct values from a table, ordering by the count of rows with those distinct valuesMySQL 从表中选择不同的值,按具有这些不同值的行数排序
【发布时间】:2011-06-29 15:35:07
【问题描述】:

我目前正在处理 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') .

谁能帮帮我?

【问题讨论】:

    标签: php mysql count distinct


    【解决方案1】:

    您需要的是GROUP BY 和COUNT。

    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。

    【讨论】:

      【解决方案2】:
      SELECT DISTINCT value_1, COUNT(*) FROM data GROUP BY value_1 ORDER BY 2 DESC;
      

      【讨论】:

      • DISTINCT 在分组时不是必需的。分组隐式地使分组值不同。
      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多