我是SQL查询的初学者,所以我希望有人可以帮助我。
我有一个包含2列的表,称为MID和jachtID。 我需要的是计算有多少相同的jachtIDS与不同的MIDS相连,如下:
MID jachtID
89 10
95 10
83 11
结果应如下所示:
MID jachtID count
89 10 2
95 10 2
83 11 1
我对所有行都需要这个 我尝试过使用
SELECT count(DISTINCT jachtID) FROM table
但这只给了我一个大数字而不是我需要的结果。
任何帮助都将不胜感激。
答案 0 :(得分:4)
您可以尝试以下查询:
SELECT
T.MID,
T.jachtID,
jT.total
FROM table T INNER JOIN
(
SELECT
jachtID,
COUNT(*) total
FROM table
GROUP BY jachtID
)AS jT
ON T.jachtID = jT.jachtID
首先通过以下查询获取每个count
的{{1}}:
jachtID
然后在主表和上述查询之间创建 SELECT
jachtID,
COUNT(*) total
FROM table
GROUP BY jachtID
,从而获得相应的INNER JOIN
计数。
答案 1 :(得分:2)
你可以用一些GROUP BY
魔法来做到这一点,但我不确定,因为你想要所有的行。但是,使用子查询将起作用。
SELECT
a.MID,
a.jachtID,
(SELECT count(b.jachtID) FROM table AS b WHERE b.jachtID= a.jachtID) AS `count`
FROM table AS a