Sql 写一个查询,每天列出前10名客户

Sql 写一个查询,每天列出前10名客户,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个customer_表,它有cust_id、first_name和last_name列,cust_order表有cust_id、order_id、order_date和amount列。如何编写一个查询,给出每天排名前10位的客户 ;WITH TOP10 AS ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY [order_date] ORDER BY [order_date] ) AS Ro

我有一个customer_表,它有cust_id、first_name和last_name列,cust_order表有cust_id、order_id、order_date和amount列。如何编写一个查询,给出每天排名前10位的客户

;WITH TOP10 AS (
    SELECT *, ROW_NUMBER() 
    OVER (
        PARTITION BY [order_date] 
        ORDER BY [order_date]
    ) AS RowNo 
    FROM [customer_orders]
)
SELECT * FROM TOP10 WHERE RowNo <= 10
上面的代码是我尝试过的,但是我无法得到想要的结果,因为我每天都需要前10个订单

;WITH TOP10 AS (
    SELECT *, ROW_NUMBER() 
    OVER (
        PARTITION BY [order_date] 
        ORDER BY [order_date]
    ) AS RowNo 
    FROM [customer_orders]
)
SELECT * FROM TOP10 WHERE RowNo <= 10

它起作用了

什么定义了顶级客户?顶着什么?最近的订单?数量order_date是否包含时间?我认为order by中需要一些表示订单金额的内容。您的查询结果是什么?为什么这不是你想要的。Allso作为一个健全性检查:您的输入是否包含多天?是的,输入有多天,其中在输出中是每天前10名。