SQL Server:基于两列返回特殊计数列
我想获取每个“ID”中包含的“代码”计数。考虑一下我想拥有的表: ╔════════╦════════╦══════╗ ║ ID ║ Code ║ Count║ ╠════════╬════════╬══════╣ ║ 111 ║ abcd ║ 2 ║ ║ 111 ║ abcdes ║ 2 ║ ║ 222 ║ dddd ║ 1 ║ ║ 333 ║ ddww1 ║ 3 ║ ║ 333 ║ ddww2 ║ 3 ║ ║ 333 ║ ddww3 ║ 3 ║ ║ 444 ║ abcde1 ║ 2 ║ ║ 444 ║ abcde2 ║ 2 ║ ╚════════╩════════╩══════╝ MS SQL Server 2008架构设置:SQL Server:基于两列返回特殊计数列,sql,sql-server,Sql,Sql Server,我想获取每个“ID”中包含的“代码”计数。考虑一下我想拥有的表: ╔════════╦════════╦══════╗ ║ ID ║ Code ║ Count║ ╠════════╬════════╬══════╣ ║ 111 ║ abcd ║ 2 ║ ║ 111 ║ abcdes ║ 2 ║ ║ 222 ║ dddd ║ 1 ║ ║ 333 ║ ddww1 ║ 3 ║ ║ 333 ║ ddww2 ║ 3 ║ ║
CREATE TABLE TABLE1( ID INT,Code VARCHAR(20))
GO
INSERT INTO TABLE1 VALUES
(111,'abcd'),
(111,'abcdes'),
(222,'dddd'),
(333,'ddww1'),
(333,'ddww2'),
(333,'ddww3'),
(444,'abcde1'),
(444,'abcde2')
SELECT A.ID
,A.Code
,Sub.CODE_COUNT
FROM TABLE1 A
INNER JOIN (
SELECT ID , COUNT(*) AS CODE_COUNT
FROM TABLE1
GROUP BY ID) Sub
ON A.ID = Sub.ID
| ID | CODE | CODE_COUNT |
|-----|--------|------------|
| 111 | abcd | 2 |
| 111 | abcdes | 2 |
| 222 | dddd | 1 |
| 333 | ddww1 | 3 |
| 333 | ddww2 | 3 |
| 333 | ddww3 | 3 |
| 444 | abcde1 | 2 |
| 444 | abcde2 | 2 |
查询1:
CREATE TABLE TABLE1( ID INT,Code VARCHAR(20))
GO
INSERT INTO TABLE1 VALUES
(111,'abcd'),
(111,'abcdes'),
(222,'dddd'),
(333,'ddww1'),
(333,'ddww2'),
(333,'ddww3'),
(444,'abcde1'),
(444,'abcde2')
SELECT A.ID
,A.Code
,Sub.CODE_COUNT
FROM TABLE1 A
INNER JOIN (
SELECT ID , COUNT(*) AS CODE_COUNT
FROM TABLE1
GROUP BY ID) Sub
ON A.ID = Sub.ID
| ID | CODE | CODE_COUNT |
|-----|--------|------------|
| 111 | abcd | 2 |
| 111 | abcdes | 2 |
| 222 | dddd | 1 |
| 333 | ddww1 | 3 |
| 333 | ddww2 | 3 |
| 333 | ddww3 | 3 |
| 444 | abcde1 | 2 |
| 444 | abcde2 | 2 |
:
CREATE TABLE TABLE1( ID INT,Code VARCHAR(20))
GO
INSERT INTO TABLE1 VALUES
(111,'abcd'),
(111,'abcdes'),
(222,'dddd'),
(333,'ddww1'),
(333,'ddww2'),
(333,'ddww3'),
(444,'abcde1'),
(444,'abcde2')
SELECT A.ID
,A.Code
,Sub.CODE_COUNT
FROM TABLE1 A
INNER JOIN (
SELECT ID , COUNT(*) AS CODE_COUNT
FROM TABLE1
GROUP BY ID) Sub
ON A.ID = Sub.ID
| ID | CODE | CODE_COUNT |
|-----|--------|------------|
| 111 | abcd | 2 |
| 111 | abcdes | 2 |
| 222 | dddd | 1 |
| 333 | ddww1 | 3 |
| 333 | ddww2 | 3 |
| 333 | ddww3 | 3 |
| 444 | abcde1 | 2 |
| 444 | abcde2 | 2 |