2014-01-07 178 views
1

我是一個謙虛的SQL初學者,我有一個問題:比方說,我有兩個表:項目和人(項目出售給誰)。 SQL中是否有任何方法來產生查詢,以顯示購買最多商品的人的數據以及他/她購買的商品數量?SQL Server查找最大查詢

我的創建是:

CREATE TABLE PEOPLE (
    ID INT PRIMARY KEY, 
    (other data) 
); 

CREATE TABLE ITEMS (
    ID INT PRIMARY KEY, 
    (other stuff....) 
    bought_by INT REFERENCES PEOPLE 
); 

任何幫助,將不勝感激:)

回答

3

是的,你可以僅僅通過bought_byITEMS表分組,排序結果由計數下降,並獲得最高紀錄:

select top 1 bought_by, count(*) 
from ITEMS 
group by bought_by 
order by count(*) desc 
+1

哇,那很快,謝謝Szymon,來自格但斯克的問候;) – Simon

1

也許這個查詢也可以幫助你,如果你需要更多的人的數據/信息:

SELECT TOP 1 PEOPLE.*, COUNT(ITEMS.*) AMOUNT FROM PEOPLE 
    JOIN ITEMS ON PEOPLE.ID = ITEMS.bought_by 
GROUP BY PEOPLE.ID, PEOPLE.OtherFieldsInPeopleTable 
ORDER BY COUNT(ITEMS.*) DESC