【问题标题】:How to get record with diff page number如何获取不同页码的记录
【发布时间】:2021-07-07 10:02:10
【问题描述】:

如何获得以下输出:-

表格包含:-

+--------+-------------+-----------+
|  word  |  unique id  |  page no  |
+--------+-------------+-----------+
|  tv    |    4444     |     1     |
+--------+-------------+-----------+
|  tv    |    4444     |     1     |
+--------+-------------+-----------+
|  tv    |    4444     |     2     |
+--------+-------------+-----------+
|CDPlayer|    8888     |     1     |
+--------+-------------+-----------+
|CDPlayer|    8888     |     1     |
+--------+-------------+-----------+
|  Watch |    1212     |     1     |
+--------+-------------+-----------+
|  Watch |    1212     |     2     |
+--------+-------------+-----------+

我想记录与差异页码重复的单词,即如果单词具有相同的页码,则忽略该记录,如果单词具有相同的页码和差异页码,则收集该记录

输出:-

+--------+-------------+-----------+
|  word  |  unique id  |  page no  |
+--------+-------------+-----------+
|  tv    |    4444     |     1     |
+--------+-------------+-----------+
|  tv    |    4444     |     2     |
+--------+-------------+-----------+
|  Watch |    1212     |     1     |
+--------+-------------+-----------+
|  Watch |    1212     |     2     |
+--------+-------------+-----------+

任何想法或建议,如何做到这一点?

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    这个可能有帮助:

    SELECT DISTINCT m.* FROM mytable m 
    QUALIFY COUNT(DISTINCT page_no) OVER (PARTITION BY word,unique_id ) > 1;
    
    +-------+-----------+---------+
    | WORD  | UNIQUE_ID | PAGE_NO |
    +-------+-----------+---------+
    | tv    |      4444 |       1 |
    | tv    |      4444 |       2 |
    | Watch |      1212 |       1 |
    | Watch |      1212 |       2 |
    +-------+-----------+---------+
    

    合格:https://docs.snowflake.com/en/sql-reference/constructs/qualify.html

    【讨论】:

    • 我还需要添加 where 条件(where flag= false)根据文档我猜我们只有 group by 子句的选项
    • 你能更新你的样本数据和输出吗?
    • 只需对查询进行少量更改即可正常工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2018-07-10
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多