[英]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 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 。
SELECT DISTINCT value_1, COUNT(*) FROM data GROUP BY value_1 ORDER BY 2 DESC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.