Использование SQL в Domo для применения нескольких групп или фильтров

Я пытаюсь отфильтровать уникальные идентификаторы пользователя, а затем посмотреть, какие идентификаторы имеют значение>1 в другом столбце. Я пробовал почти каждый пример из SQL - выбирая уникальные значения из одного столбца, затем фильтруя по другому и по крайней мере 1 или еще двум сайтам, но я не могу найти подходящие ссылки для этого, поскольку в любом случае это оказалось немного не связанным.

Пример соответствующих столбцов моего набора данных:

+---------+-----------+
| UserIDs | EventType |
+---------+-----------+ 
| 100     | Start     |
| 100     | Start     |
| 100     | Finish    |
| 100     | Finish    |
| 200     | Start     |
| 200     | Start     |
| 200     | Start     |
| 200     | Finish    |
| 200     | Finish    |
| 200     | Finish    |
| 300     | Start     |
| 400     | Start     |
| 400     | Finish    |
+---------+-----------+

Я пытаюсь выяснить, сколько пользователей запустили EventType-Finish более одного раза. Данные, которые я хотел бы получить из приведенного выше примера:

+------------------------------------------------+
| Total # of students that battled more than once|
+------------------------------------------------+  
| 2                                              |
+------------------------------------------------+ *edited*

Ни один из Group By вещи кажутся правильными, потому что это просто сжало бы другие строки друг в друга?

Для записи я очень новичок в SQL и программирование в целом, поэтому постарайтесь не быть слишком техническим в своем ответе. Каждый раз, когда я отдаленно думаю о том, что решил эту проблему, я запускаю ее, и она выдает мне синтаксические ошибки, поэтому я понятия не имею, куда еще обратиться.

Извините, ребята, я написал результат неправильно, на самом деле я просто ищу количество студентов, которые вызвали Finish больше чем единожды. Кроме того, что бы я использовал вместо имени таблицы, например: FROM "TABLE" поскольку у Домо есть какой-то странный способ разрушить иерархию. Для контекста, моя таблица называется "Данные метрики", поэтому попытка ввести ее в имя таблицы обычно преобразует data в SQL код.

Попытка ответа

2 ответа

Попробуйте этот ответ,

SELECT UserId,COUNT(1) [# of Finishes] 
FROM Your_Table
WHERE EventType='Finish'
GROUP BY UserID
HAVING COUNT(1)>1

Надеюсь, поможет.

Я хотел бы сделать некоторую условную агрегацию с помощью case выражения

SELECT 
      UserIDs [UserID],
      SUM(CASE(EventType) WHEN 'Finish' THEN 1 ELSE 0 END) [# of Finishes]
FROM <table> GROUP BY UserIDs 
HAVING SUM(CASE(EventType) WHEN 'Finish' THEN 1 ELSE 0 END) > 1

Результат:

UserID  # of Start   
100     2            
200     3            
Другие вопросы по тегам