2016-10-15 1 views
0

私はこれらの2つのテーブルを持ち、CatTypeテーブルにあるすべてのCatTypeの各CatTypeのcatType名と猫の数を表示するクエリを書きたいとしましょう。私は降順で猫を表示したいが、2つのタイプの猫が同じ猫の数を持っているなら、それらをアルファベット順に表示したい。MySQLがテーブルを結合し、カウントとアルファベット順のデータを並べ替えます

これまで私がこれまで行ってきたことはありますが、私が欲しいものを正確に得ることは困難です。

ヒントや考えがあれば、非常に役立ちます。ありがとう。

SELECT CatType_name AS 'Cat Type Name', 
COUNT(*) AS 'Number of Cats' 
FROM CatType INNER JOIN Cats 
ON Cats.CatType_id = Cats.CatType_id 
GROUP BY Cats.CatType_id, CatType_Name 
ORDER BY CatType_name DESC; 

    Cats 
--------------------- 
|Cat_id | integer | 
--------------------- 
|cat_name| string | 
--------------------- 
|cat_type | character|     
--------------------- 
|CatType_id| integer|   
--------------------- 

    CatType 
--------------------- 
|CatType_id|integer | 
--------------------- 
|CatType_name|string | 
--------------------- 
+2

2つのテーブルのサンプルデータを表示できますか? –

+2

サンプルデータと期待される結果がなく、確実に言うのは難しいです。しかし、 'order by count(*)desc、cattype_name'はあなたの後になっているかもしれません。 – sgeddes

答えて

2

これは機能する場合があります。 haventはテストしました。

SELECT CatType_name AS 'Cat Type Name', COUNT(*) AS 'Number of Cats' 
    FROM CatType 
    INNER JOIN Cats 
    ON Cats.CatType_id = Cats.CatType_id 
    GROUP BY Cats.CatType_id, CatType_Name 
ORDER BY count(*) DESC, CatType_name DESC; 
関連する問題