这是我得到的 mySQL
id terms
1 a
2 c
3 a
4 b
5 b
6 a
7 a
8 b
9 b
10 b
我想得到一个按计数排序的字母列表,如下所示
terms count
a 4
b 5
c 1
为此我需要什么 mySQL 语句?
我相信这样的事情会奏效:
SELECT terms, COUNT( id) AS count
FROM table
GROUP BY terms
ORDER BY terms DESC
根据 SQL 中一个或多个列或表达式的值,将一组选定的行分组为一组汇总行。每组返回一行。SELECT 子句列表中的聚合函数提供有关每个组而不是单个行的信息。
您只需要申请group by
子句即可获得结果
select terms, count (id) as count from table
group by terms
order by terms
我非常需要一家二手唱片店来按字母顺序显示库存中的艺术家,括号中是他们的数量,例如:
斯莫基·罗宾逊和奇迹 (2) | 音速青年 (2) | 勺子 (3) | 钢铁丹 (1) | 史提夫汪达 (2) | 苏菲扬史蒂文斯 (1) |
请注意,我从表“记录”中提取时使用了 SELECT DISTINCT。以下是相关的代码片段:
//QUERY
$arttool = mysql_query("SELECT DISTINCT * FROM records GROUP BY artist ORDER BY artist ASC");
//OUTPUT LOOP START
while($row = mysql_fetch_array($arttool)){
//CAPTURE ARTIST IN CURRENT LOOP POSITION
$current=$row['Artist'];
//CAPTURING THE NUMBER OF ALBUMS IN STOCK BY CURRENT ARTIST
$artcount = mysql_num_rows(mysql_query("SELECT * FROM records WHERE artist = '$current'"));
//ECHO OUT.
echo $current . "($artcount)";
我网站中的实际代码更复杂,但这是它的基本内容。希望有帮助...