Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте,
у меня есть проблема с созданием sql-запроса.
есть такая таблица:
id name value
1 a 1
2 a 1
3 a 1
4 b 1
5 b 2
6 b 2
7 c 1
8 c 2
9 c 3
нужно для каждого name выбрать только уникальные значения value. но если возможных значений value для name только одно (как в случае с a), то не брать ничего.
т.е. в результате должно получиться
id name value
4 b 1
5 b 2
7 c 1
8 c 2
9 c 3
Неактивен
Доброго времени суток! Предложу свою версию запроса:
SELECT id, name, value
FROM ваша_таблица
WHERE name IN
(SELECT name FROM
(SELECT distinct name, value
FROM ваша_таблица) AS new_ваша_таблица
GROUP BY name
HAVING COUNT(name) > 1)
GROUP BY name, value;
Возможно слишком много подзапросов, но результат получился нужным:
+------+------+-------+
| id | name | value |
+------+------+-------+
| 4 | b | 1 |
| 5 | b | 2 |
| 7 | c | 1 |
| 8 | c | 2 |
| 9 | c | 3 |
+------+------+-------+
5 rows in set (0.00 sec)
Неактивен