如何获取SQL中的行数

时间:2016-09-01 08:06:03

标签: php mysql

我是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

但这只给了我一个大数字而不是我需要的结果。

任何帮助都将不胜感激。

2 个答案:

答案 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