繁体   English   中英

sql语句以字母顺序排列和计数

[英]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

阅读: GROUP BY(Transact-SQL)

通过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.

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