繁体   English   中英

在Domo中使用SQL来应用多个组或过滤器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM