Sql-Server

將表輸出合併到另一個表的列中

  • April 4, 2018

我有一個有趣的問題要在 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

它奏效了。感謝您的所有幫助,伙計們和女孩們!

引用自:https://dba.stackexchange.com/questions/203017