[英]sql statement to alphabetize and count
这是我得到的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)| Sonic Youth(2)| 勺子(3)| Steely Dan(1)| Stevie Wonder(2)| Sufjan Stevens(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)";
我网站中的实际代码更复杂,但这是它的基础。 希望有帮助......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.