3

これが私が得た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ステートメントは何ですか?

4

3 に答える 3

6

私はこのようなものがうまくいくと信じています:

SELECT terms, COUNT( id) AS count 
    FROM table 
GROUP BY terms 
ORDER BY terms DESC
于 2012-04-25T17:10:29.947 に答える
6

読み取り: GROUP BY (Transact-SQL)

1 つ以上の列の値または SQL の式によって、選択した行のセットを集計行のセットにグループ化します。グループごとに 1 行が返されます。SELECT 句リストの集計関数は、個々の行ではなく、各グループに関する情報を提供します。

group by結果を取得するための句を適用するだけです

select terms, count (id) as count from table 
group by terms 
order by terms 
于 2012-04-25T17:12:40.637 に答える
1

使用済みのレコード店で、在庫のあるアーティストを括弧で囲んでアルファベット順に表示する必要がありました。例:

スモーキーロビンソンと奇跡(2)| ソニック・ユース(2)| スプーン(3)| スティーリー・ダン(1)| スティービーワンダー(2)| スフィアン・スティーブンス(1)|

テーブルの「レコード」からプルするときにSELECTDISTINCTを使用したことに注意してください。関連するコードスニペットは次のとおりです。

//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)";  

私のサイトの実際のコードはもっと複雑ですが、これはその骨組みです。お役に立てば幸いです...

于 2012-05-08T20:29:01.200 に答える