#mysql #join #count #alphabetical
#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 |
---------------------
Комментарии:
1. Не могли бы вы показать нам несколько примеров данных для двух таблиц?
2. Без образцов данных и ожидаемых результатов трудно сказать наверняка. Однако,
order by count(*) desc, cattype_name
возможно, это то, что вам нужно.
Ответ №1:
Это может сработать. хотя я не тестировал.
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;