2014-01-07 72 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