0
Это моя текущая таблица:MySQL: таблицы запросов с отчетливыми «действиями»
+--------+----------+------------+
| userid | action | day |
+--------+----------+------------+
| 123 | play | 2016-11-06 |
| 123 | purchase | 2016-11-06 |
| 345 | login | 2016-11-06 |
| 123 | level_up | 2016-11-07 |
| 123 | play | 2016-10-01 |
| 456 | sign_out | 2016-10-02 |
| 456 | sign_out | 2016-11-02 |
+--------+----------+------------+
Я хочу, чтобы распечатать идентификатор пользователя, который имеет по крайней мере 2 уникальных действия. 456 имеет только 1 отдельный, поэтому я не хочу его распечатывать.
Так я хочу напечатать:
+--------+----------+------------+
| userid | action | day |
+--------+----------+------------+
| 123 | play | 2016-11-06 |
| 123 | purchase | 2016-11-06 |
| 123 | level_up | 2016-11-07 |
| 123 | play | 2016-10-01 |
+--------+----------+------------+
Это моя лучшая попытка:
SELECT userid as this_id
FROM sampleTable WHERE (
SELECT COUNT(DISTINCT action)
FROM sampletable
WHERE userid = this_id)
>= 2;
Любой шанс у мог бы сделать его более простым :), потому что я также должен добавить туда, где только если идентификатор пользователя содержит как «play», так и «level_up». –
Я могу добавить другую версию вышеуказанного запроса, используя 'EXISTS/IN', но это не упростит запрос. В чем проблема с добавлением предложения WHERE? – 1000111
Вы знаете, как присоединиться к этому утверждению? –