2015-10-28 20 views
0

我有這個疑問:SQL計數

Select 
    ID, Date, Partner 
From 
    Orders 
Order By 
    Data Desc 

結果:

ID Date Partner 
1 27 x 
2 16 y 
3 06 z 
4 04 x 
5 02 z 

如何使用count(Partner)得到結果是這樣的:

ID Date Partner Count 
1 27 x  2 
2 16 y  1 
3 06 z  2 
4 04 x  2 
5 02 z  2 
+5

是宥使用的是什麼DBMS? – Matt

回答

0

使用相關子查詢做計數:

Select 
ID, Date, Partner, (select count(*) from Orders o2 
        where o1.Partner = o2.Partner) 
from Orders o1 
ORDER BY Data Desc 
1

在大多數數據庫,你可以使用ANSI標準的窗口類函數:

select o.id, o.date, o.partner, 
     count(*) over (partition by partner) as cnt 
from orders o; 
2

對於MS SQL,您可以使用Window function COUNT此:

Select 
ID, Date, Partner, 
count (*) OVER (PARTITION BY Partner) 
from Orders 
ORDER BY Date Desc 
0
Select 
ID, Data, Z.Partner,Cnt 
from Orders O 
inner join 
(select Partner, count(Partner) as cnt 
from Orders 
group by Partner)Z 
on O.Partner = Z.Partner 
order by Data desc 
+0

http://sqlfiddle.com/#!9/e6698f/4您的保證...... –