Вернуть записи с повторяющимся значением столбца в MySQL - PullRequest
1 голос
/ 10 ноября 2011

Я пытаюсь подсчитать количество вхождений значения в столбце и вернуть строки, вхождения которых больше единицы.

Например:

SomeId   AnotherId
1        BC4
1        CDE
1        SDF
5        ER
5        WER
4        DFGR4

Я бы хотел получить SomeId, вхождение которого в столбце SomeId больше единицы.

Я смотрел на использование SUM и GROUP, но не повезло: (

Ответы [ 7 ]

2 голосов
/ 10 ноября 2011

Это вернет идентификаторы, которые встречаются более одного раза.

SELECT SomeId
FROM yourTable
GROUP BY SomeId
HAVING COUNT(1) > 1
1 голос
/ 10 ноября 2011
SELECT SomeId
    FROM YourTable
    GROUP BY SomeId
    HAVING COUNT(SomeId) > 1;
0 голосов
/ 10 ноября 2011

Если вы знакомы с PHP, вы можете сделать это так:

$sql = "SELECT * FROM table";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc):
if($row['SomeId'] > 1):

{do whatever you like here...}

endif;
endwhile;
0 голосов
/ 10 ноября 2011

Попробуйте это:

select SomeId, Count(distinct AnotherId)
  from YourTable
 group by SomeId
having Count(distinct AnotherId) > 1
0 голосов
/ 10 ноября 2011

Вы были на правильном пути с GROUP BY, но вам также нужно было HAVING.

Попробуйте это:

SELECT SomeId, COUNT(SomeId)
FROM table
GROUP BY SomeId
HAVING COUNT(SomeId) > 1

Вот ссылка на статью в Википедии об предложении HAVING для начинающих.

0 голосов
/ 10 ноября 2011

Попробуйте это:

select count(*) as frequency, SomeId group by SomeId having frequency > 1
0 голосов
/ 10 ноября 2011
SELECT SomeId, COUNT(SomeId) AS someidcount
FROM tablename
GROUP BY SomeId
HAVING someidcount > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...