SQL中的分组与排序
我需要用SQL进行查询,以显示畅销书。为此,我需要做一个内部连接,在我做了内部连接之后,我遇到了一个问题。这是我的密码:SQL中的分组与排序,sql,sql-server,Sql,Sql Server,我需要用SQL进行查询,以显示畅销书。为此,我需要做一个内部连接,在我做了内部连接之后,我遇到了一个问题。这是我的密码: CREATE VIEW mostpopularbookssold AS SELECT Count(orders.book_id) AS numberofbookssold , Top(1) books.[Name] FROM orders INNER JOIN books ON books.id=orders
CREATE VIEW mostpopularbookssold AS
SELECT Count(orders.book_id) AS numberofbookssold ,
Top(1) books.[Name]
FROM orders
INNER JOIN books
ON books.id=orders.book_id
GROUP BY books.[Name]
select *
FROM mostpopularbookssold
顶部(1)
应该放在查询开始处,在选择之后。此外,您还必须根据售出的书籍进行订购:
CREATE VIEW MostPopularBooksSold
AS
SELECT TOP(1)
COUNT(Orders.Book_ID) AS NumberOfBooksSold
, Books.[Name]
FROM [the database name].[schema name].[Orders] AS Orders
INNER JOIN [the database name].[schema name].[Books] AS Books
ON Books.ID = Orders.Book_ID
GROUP BY Books.[Name]
ORDER BY COUNT(Orders.Book_ID) DESC
您应该将数据库名称替换为数据库的名称,在数据库中您已经创建了相应的表,并且您已经将模式名称
替换为模式名称,在模式名称下您已经创建了相应的表(如果您没有明确说明模式名称,通常这是dbo)。MySQL!=MS Sql Server什么是“遇到问题”?即使使用正确的语法,您希望得到哪本top 1书籍?top(1)谓词来自哪里?它放错了位置,可能没有必要,因为group by已经确保每个书名只提及一次。获取多部分标识符Orders.book_ID无法绑定,“FROM Orders”上的topon附近语法不正确我收到一个错误,说明订单无效object@Grootpoot对应表的名称是否为Orders
。如果是这样,请尝试使用模式使用全名[数据库名称].[schema name].[Orders]
您能帮个忙吗?@Grootpoot您是否试图用[数据库名称].[schema name].[Orders]
替换订单?数据库名称很简单,它是您在其中创建表的数据库的名称。如果没有更改,则架构名称通常为dbo
。试试看,让我知道。“谢谢”现在在内部连接的行中,我得到一个错误,books是一个无效的对象名