SQL 排序和列表

SQL order by and list

我是 SQL 的新手,我已尽最大努力对此进行编码,但它似乎对我不起作用,因此非常感谢您的帮助。

问题表明我需要列出每个出版商出版的图书总数,然后使用出版商​​代码从高到低列出它们。

我已经走到这一步了;

SELECT COUNT (pub_code)
FROM Library_Books
GROUP BY pub_code
ORDER BY pub_code 

如有任何帮助,我们将不胜感激

SELECT kb_pub_code, COUNT (kb_pub_code)    
FROM Library_Books    
GROUP BY kb_pub_code    
ORDER BY 2
SELECT kb_pub_code
,COUNT (*) as 'TotalBooks'
FROM Library_Books
GROUP BY kb_pub_code
ORDER BY TotalBooks desc 

编辑:使用可能重复的附加信息,您可能希望使用 CTE。

With DistinctList as(
Select Distinct kb_pub_code as 'PubCode'
,kb_title as 'Title' 
FROM Library_Books)

Select PubCode
,Count(*) as 'TotalBooks'
From DistinctList
Group by PubCode
ORDER BY TotalBooks desc 

你们很亲近:

SELECT kb_pub_code, COUNT(*) TotalBooks
FROM Library_Books
GROUP BY kb_pub_code
ORDER BY TotalBooks DESC

TotalBooks是count列的别名,统计的是每个kb_pub_code

的总行数

您可以在 ORDER BY 中引用列别名:即。ORDER BY TotalBooks DESC

请注意,如果书籍可以在 Library_Books table 中重复,您可能需要 DISTINCT 计数。类似于:

SELECT kb_pub_code, COUNT(DISTINCT title) TotalBooks
FROM Library_Books
GROUP BY kb_pub_code
ORDER BY TotalBooks DESC

ORDER BY DESC 将按降序排列。出版商代码应包含在结果集中 (SELECT),否则您将不知道计数的是哪个出版商。

SELECT kb_pub_code, COUNT (kb_pub_code)    
FROM Library_Books    
GROUP BY kb_pub_code    
ORDER BY COUNT(kb_pub_code) DESC