0

pubs データベースで、販売品質が最も高い店舗をクエリしたいと考えています。次のクエリを実行します。

select stores.stor_id, sum(sales.qty) as sumqty
from stores
join sales on stores.stor_id = sales.stor_id
group by stores.stor_id, stores.stor_name

結果:

+-------+------+
|stor_id|sumqty|
+-------+------+
|6380   |8     |
+-------+------+
|7066   |125   |
+-------+------+
|7067   |90    |
+-------+------+
|7131   |130   |
+-------+------+
|7896   |60    |
+-------+------+
|8042   |80    |
+-------+------+

私が必要とする結果は次のようなものです

+-------+------+
|stor_id|sumqty|
+-------+------+
|7131   |130   |
+-------+------+

いくつか提案をいただけますか?ありがとう。

4

2 に答える 2

1

簡単な方法、使い方SELECT TOP 1ORDER BY DESC

select top 1 sales.stor_id, sum(sales.qty) as sumqty
from stores
join sales on stores.stor_id = sales.stor_id
group by sales.stor_id
order by 2 desc;

とにかく、なぜに参加する必要があるのstoresですか?私はsalesテーブルから十分だと思います:

select top 1 sales.stor_id, sum(sales.qty) as sumqty
from sales
group by sales.stor_id
order by 2 desc;

結果に最大値として 2 つ以上のレコードがある場合、上記のクエリは失敗します。

これを使用してそれを処理します。

select sales.stor_id, MAX(sumqty) as sumqty from (select sales.stor_id, sum(sales.qty) as sumqty
from sales
group by sales.stor_id) sales
于 2014-01-16T05:33:38.353 に答える