Я хотел бы, чтобы вы помогли решить проблему, с которой я борюсь в течение нескольких дней, даже не приблизившись к решению. К сожалению, я уже опубликовал свою проблему и не смог улучшить ситуацию с доставленным предложением.
То, чего я хотел бы достичь, в некоторой степени достигается GROUP BY
и HAVING
с возможностью CASE WHEN
, но что бы я ни делал, я не добиваюсь того, чего желаю.
То, чего я хочу достичь, это GROUP BY
только тогда, когда содержимое группы превышает 3 строки и оставляет отдельные элементы, т.е. не сгруппировано , когда группа меньше или равна до трех.
Пример
ID DESC VAL1 VAL 2 VAL 3
1 DESC1 2 2 4
2 DESC2 2 2 4
3 DESC3 2 2 4
4 DESC4 2 2 4
5 DESC5 1 1 2
6 DESC6 1 1 2
GROUP BY
будет через VAL1 , VAL2 , VAL 3 через следующие
SELECT * FROM TABLE1 GROUP BY VAL1,VAL2,VAL3
Это даст следующее:
ID DESC VAL1 VAL 2 VAL 3
1 DESC1 2 2 4
5 DESC5 1 1 2
Однако мне нужно следующее:
ID DESC VAL1 VAL 2 VAL 3
1 DESC1 2 2 4
5 DESC5 1 1 2
6 DESC6 1 1 2
Может ли это быть достигнуто с помощью GROUP BY
, я думаю, что это подзапрос, но я не могу справиться. Ваша помощь будет очень ценится.
СУБД - это MySQL.