0

我知道这个问题一直被问到,但我是 sql 新手,似乎无法从其他问题中得到答案。我有一个表 ( consumes_t),其中包含date_recieveditem_id、和。我需要找出消耗最多的物品。 patient_idquantitytime_recieved

我写了这个脚本:

select sum (quantity) as sumquantity, item_id
from consumes_t as highquantity_t

where quantity > all

(select quantity
from consumes_t as allotherquantity_t
where highquantity_t.quantity > allotherquantity_t.quantity)

group by item_id

这给了我所有项目及其总数的列表,但我只想显示最高的总数。我不能使用 top1 和 order by。

我也试过:

select max (totalquantity) as consumed, item_id
from consumes_t
join (select 
    sum (consumes_t.quantity) as totalquantity 
    from consumes_t
    group by consumes_t.item_id) as t1
 on t1.totalquantity > consumes_t.quantity
 group by item_id

这给了我所有 item_ids 的总数为“9”。

任何想法都会非常感激。谢谢。

4

1 回答 1

1

我使用 CTE 来获得所需的结果

WITH A AS
(
SELECT item_id, SUM(quantity) AS TotalQuantity
FROM consumes_t
GROUP BY item_id
)

SELECT item_id, TotalQuantity
FROM A
WHERE TotalQuantity = (SELECT MAX(TotalQuantity) FROM A)
于 2013-10-25T01:51:33.290 回答