Lassen Sie uns sagen, ich habe die Datenmenge, die wie folgt aussieht:Graf von einer der Säulen
col1 col2 col3
a 2 20
a 3 12
a 4 34
b 2 44
c 3 23
c 5 13
....
Was ich will, eine Anzahl von col1 ist.
Ausgang:
col1 col2 col3 count
a 2 20 3
a 3 12 3
a 4 34 3
b 2 44 1
c 3 23 2
c 5 13 2
.......
ich weiß ich kann tun:
with cte as (
select col1, count(*) count
from tab1)
select a.col1,a.col2,a.col3,cte.count
from tab1
join cte on a.col1=cte.col1
Aber gibt es andere was ich tun kann, dass ohne Quer anwenden oder cte?
Auch vorausgesetzt, es gibt mehr als 3 Buchstaben in col1, so konnte ich nicht Summenfunktion verwenden entweder:
SUM(CASE WHEN ItemID = 'a' THEN 1 ELSE 0 END) AS count_a
Versuchen Sie es mit 'COUNT OVER':' * SELECT, \t C OUNT (*) OVER (PARTITION VON col1) FROM tab1' –