[英]Using SQL in Domo to apply multiple groups or filters
我正在尝试过滤唯一的UserID,然后在另一列中查看哪些ID的值大于1。 我已经尝试了很多来自SQL的示例-从一列中选择唯一值,然后根据另一列以及至少一个或两个以上的站点进行过滤,但是我却找不到合适的链接,因为事实证明它一点都不相关。
我的数据集的相关列的示例如下:
+---------+-----------+
| 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"
因为Domo有一种奇怪的方式来破坏层次结构。 对于上下文,我的表称为“指标数据”,因此尝试在表名称中键入该值通常会将data
转换为SQL
代码。
试试这个答案,
SELECT UserId,COUNT(1) [# of Finishes]
FROM Your_Table
WHERE EventType='Finish'
GROUP BY UserID
HAVING COUNT(1)>1
希望能帮助到你。
我想在case
表达的帮助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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.