+------+-------+-------+---------+---------+
| R_ID | BU | DIV | Product | C_Func |
+------+-------+-------+---------+---------+
| 1 | BU1 | Div1 | P1 | Dev |
| 2 | BU2 | Div2 | P2 | Dev |
| 3 | BU2 | Div2 | P2 | BA |
| 4 | BU3 | Div3 | P3 | Dev |
| 5 | BU3 | Div3 | P3 | QA |
| 6 | BU4 | Div4 | P4 | Dev |
| 7 | BU4 | Div4 | P4 | QA |
| 8 | BU4 | Div4 | P4 | BA |
| 9 | BU1 | Div1 | P1 | Dev |
| 10 | BU2 | Div2 | P2 | Dev |
| 11 | BU2 | Div2 | P2 | BA |
| 12 | BU3 | Div3 | P3 | Dev |
| 13 | BU3 | Div3 | P3 | QA |
| 14 | BU4 | Div4 | P4 | Dev |
| 15 | BU4 | Div4 | P4 | QA |
| 16 | BU4 | Div4 | P4 | BA |
| 17 | BU3 | Div3 | P3 | QA |
| 18 | BU4 | Div4 | P4 | Dev |
| 19 | BU4 | Div4 | P4 | QA |
| 20 | BU4 | Div4 | P4 | BA |
+------+-------+-------+---------+---------+
我有一个表中的数据,如上所示,我使用sql连接和all获取。 我想要的是工作在(BU,DIV,Product,C_func)上的'R_ID'的计数。 例如 我想知道(BU1,Div1,P1,Dev)有多少'R_ID',因为该计数应为2,因为该集合有两个条目(BU1,Div1,P1,Dev)。
预期产出:
+-------+-------+---------+---------+-------+
| BU | DIV | Product | C_Func | Count |
+-------+-------+---------+---------+-------+
| BU1 | Div1 | P1 | Dev | 2 |
| BU2 | Div2 | P2 | Dev | 2 |
| BU2 | Div2 | P2 | BA | 2 |
| BU3 | Div3 | P3 | Dev | 2 |
| BU3 | Div3 | P3 | QA | 3 |
| BU4 | Div4 | P4 | Dev | 3 |
| BU4 | Div4 | P4 | QA | 3 |
| BU4 | Div4 | P4 | BA | 3 |
+-------+-------+---------+---------+-------+
请帮帮我。 提前谢谢。
答案 0 :(得分:1)
你可以这样做:
select BU, DIV, Product, C_Func, count(*)
from mytable
group by BU, DIV, Product, C_Func
答案 1 :(得分:1)
这是一个简单的GROUP BY
场景。
SELECT BU,DIV,Product,C_Func,COUNT(R_ID)
FROM YOURTABLE
GROUP BY BU,DIV,Product,C_Func
您需要group by
要将其视为群组的所有列,并在左侧列中应用count
。
答案 2 :(得分:0)
SELECT BU,DIV,Product,C_Func,COUNT(*)
FROM YOURTABLE
GROUP BY BU,DIV,Product,C_Func
答案 3 :(得分:0)
根据R_ID
的唯一性,有两种替代方法。如果它被定义为 UNIQUE INDEX ,那么您可以简单地将行计为:
SELECT BU1 , COUNT(*)
FROM YourTable
GROUP BY BU1 ;
如果不定义为 UNIQUE INDEX ,并且您想知道有多少不同的索引,那么查询将变为:
SELECT BU1 , COUNT(DISTINCT R_ID)
FROM YourTable
GROUP BY BU1 ;
相同类型的查询可用于其他列。
答案 4 :(得分:0)
试试这个:
select BU, DIV, Product, C_Func, count(1)
from table
group by BU, DIV, Product, C_Func
答案 5 :(得分:0)
;WITH tb(R_ID,BU,DIV,Product,C_Func)AS(
SELECT 1,'BU1','Div1','P1','Dev' UNION ALL
SELECT 2,'BU2','Div2','P2','Dev' UNION ALL
SELECT 3,'BU2','Div2','P2','BA' UNION ALL
SELECT 4,'BU3','Div3','P3','Dev' UNION ALL
SELECT 5,'BU3','Div3','P3','QA' UNION ALL
SELECT 6,'BU4','Div4','P4','Dev' UNION ALL
SELECT 7,'BU4','Div4','P4','QA' UNION ALL
SELECT 8,'BU4','Div4','P4','BA' UNION ALL
SELECT 9,'BU1','Div1','P1','Dev' UNION ALL
SELECT 10,'BU2','Div2','P2','Dev' UNION ALL
SELECT 11,'BU2','Div2','P2','BA' UNION ALL
SELECT 12,'BU3','Div3','P3','Dev' UNION ALL
SELECT 13,'BU3','Div3','P3','QA' UNION ALL
SELECT 14,'BU4','Div4','P4','Dev' UNION ALL
SELECT 15,'BU4','Div4','P4','QA' UNION ALL
SELECT 16,'BU4','Div4','P4','BA' UNION ALL
SELECT 17,'BU3','Div3','P3','QA' UNION ALL
SELECT 18,'BU4','Div4','P4','Dev' UNION ALL
SELECT 19,'BU4','Div4','P4','QA' UNION ALL
SELECT 20,'BU4','Div4','P4','BA'
)
SELECT BU,DIV,Product,C_Func,COUNT(DISTINCT R_ID) AS [R_ID_Count]
FROM tb GROUP BY BU,DIV,Product,C_Func
BU DIV Product C_Func R_ID_Count ---- ---- ------- ------ ----------- BU1 Div1 P1 Dev 2 BU2 Div2 P2 BA 2 BU2 Div2 P2 Dev 2 BU3 Div3 P3 Dev 2 BU3 Div3 P3 QA 3 BU4 Div4 P4 BA 3 BU4 Div4 P4 Dev 3 BU4 Div4 P4 QA 3