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

我需要用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.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是一个无效的对象名