时间:2016-02-10 21:25:39

标签: sql

我有这个

m_id    p_id
112      8
340      8
928     16
190     16
290     16
... etc

我如何得到这个?

p_id    count(p_id)
8          2
16         3

我很困惑,因为我还想确保它在计算p_id,同时保持m_id值不同。

请帮助,谢谢你:)

2 个答案:

答案 0 :(得分:1)

示例数据

  CREATE TABLE #temp
                  (
             m_id INT, p_id INT
                  );

INSERT INTO #temp
VALUES
       (112, 8
       ),
       (340, 8
       ),
       (928, 16
       ),
       (190, 16
       ),
       (290, 16
       );

查询:

SELECT p_id, COUNT(*) [count(p_id)]
FROM #temp
GROUP BY p_id;

结果: enter image description here

答案 1 :(得分:1)

我相信你想要这样的东西:

SELECT p_id, count(distinct m_id) from myTable group by p_id;

如果您想计算与每个p_id相关联的不同m_id的数量,那么如果您只想计算表中p_id的数量,请删除 distinct 关键字。