Sql-Server
將表輸出合併到另一個表的列中
我有一個有趣的問題要在 SQL 中工作,我真的需要幫助。
我需要做的是取一張表,計算一列中重複/重複的數量,將它們相加,然後將結果吐出到一個名為“Count”的新列中,該列與按記錄計算的列相匹配。
所以,就像..如果你有一張像這樣的桌子:
Domain | ---------------- abc.com abc.com bca.com bca.com bca.com ggg.com
我需要它輸出如下內容:
Domain | Count ------------------------------ abc.com | 2 abc.com | 2 bca.com | 3 bca.com | 3 bca.com | 3 ggg.com | 1
現在,我有一些程式碼是由一位非常有才華的人編寫的。但是,它不在 Transact SQL 中。不幸的是,我對 SQL 沒有足夠的了解,無法將其轉換為 T-SQL。
(靜態值替換為blah)
create table tbl (blah, Domain) insert into tbl ( blah query ) select tbl.Domain, t1.cnt from tbl join (select Domain, count(*) cnt from tbl group by Domain) t1 on t1.Domain = tbl.Domain;
任何將其音譯為 Transact SQL 的幫助都會非常有幫助。
謝謝你。
對我來說,這看起來像是有效的 tsql
但是有一種更短的方式
Window 函式
select Domain, count(*) over (partition by Domain) as cnt from tbl
在你的幫助下,我真的想通了。正是我用來填充“tbl”的查詢首先讓我掛斷了電話。
所以,我這樣做了:
use db; drop table tbl; select Domain into tbl from dbo.db; select tbl.Domain, t1.Count from tbl join (select Domain, count(*) Count from tbl group by Domain) t1 on t1.Domain = tbl.Domain
它奏效了。感謝您的所有幫助,伙計們和女孩們!