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

时间:2012-04-25 17:08:47

标签: php mysql sql database

这是我得到的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语句?

3 个答案:

答案 0 :(得分:6)

我相信这样的事情会起作用:

SELECT terms, COUNT( id) AS count 
    FROM table 
GROUP BY terms 
ORDER BY terms DESC

答案 1 :(得分:6)

阅读:GROUP BY (Transact-SQL)

通过SQL中的一个或多个列或表达式的值将选定的一组行分组到一组摘要行中。每组返回一行。 SELECT子句列表中的聚合函数提供有关每个组而不是单个行的信息。

您只需要应用group by子句获取结果

select terms, count (id) as count from table 
group by terms 
order by terms 

答案 2 :(得分:1)

我对二手唱片店的需求非常相似,以字母方式显示库存中的艺术家,并在括号中显示,例如:

Smokey Robinson和奇迹(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)";  

我网站中的实际代码更复杂,但这是它的基础。希望有所帮助...