【问题标题】:MySQL joining tables and sorting data by count and alphabetical orderMySQL 加入表并按计数和字母顺序对数据进行排序
【发布时间】:2016-10-15 01:37:30
【问题描述】:

假设我有这两个表,并想编写一个查询,显示我的 CatType 表中所有 CatType 的 catType 名称和每个 CatType 中的猫数量。我想按降序显示猫,但如果两种类型的猫有相同数量的猫,那么我想按字母顺序显示。

这是我目前所拥有的,但我无法得到我想要的东西。

任何提示或考虑的事情都会非常有帮助。谢谢。

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 | 
---------------------

【问题讨论】:

  • 你能给我们看一些这两个表的样本数据吗?
  • 没有样本数据和预期结果,很难确定。但是,order by count(*) desc, cattype_name 可能就是您所追求的。

标签: mysql join count alphabetical


【解决方案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; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2018-11-19
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    相关资源
    最近更新 更多