如何计算列表中的不同值
How to count distinct values in a list
我对在 Snowflake 中编写查询还很陌生,运行 遇到了小问题。我正在尝试计算一个项目在同一列的列表中出现的次数。
我能够使用 flatten 函数,然后尝试添加 count 函数,但没有成功。
这是我的数据的虚拟版本:
Ticket# Tasks
1 ["cut apple","peel orange","slice cheese"]
2 ["slice cheese","peel orange"]
3 ["cut apple"]
4 ["cut apple","slice cheese"]
5 ["cut apple", "chop kiwi"]
这是我希望输出的样子:
(希望按降序顺序自动填充不同的任务列表)
Tasks Quantity
Cut Apple 4
Slice Cheese 3
Peel Orange 2
Chop Kiwi 1
评论太长,但您可以查看指导,然后尝试编写示例查询。虽然您有机会在学习的同时这样做,但我会调查 Data Normalization 并调整您的 "Tasks" 列。
您应该进行二次查找 table,其中包含主键 ID 和每个唯一任务的描述(您将在数据规范化中看到)。因此,您可以从数据上下文到文档,我将提供布局示例,看看它对您有何帮助。
从查找任务开始table...
Tasks Table
TaskID TaskDescription
1 cut apple
2 peel orange
3 slice cheese
4 chop kiwi
然后,您将有另一个 table 具有 TicketID,第三个 table 显示每个 TicketID 的多条记录。
Ticket Table
TicketID ExPurchaseDate
1 someDate
2 sameDate
3 etc...
现在,每张票的详细信息 table。
TicketTasks Table
TicketTaskID TicketID TaskID
1 1 1
2 1 2
3 1 3
4 2 3
5 2 2
6 3 1
7 4 1
7 4 3
8 5 1
9 5 4
尝试通过规范化来消化这些,然后研究使用 COUNT(*) 和 GROUP BY 编写 sql 查询。非常乐意在之后为您提供更多帮助,但希望这些帮助能为您提供一些帮助。
第 1 步:定义规范化数据模式并将该模式放入数据库。
您的规范化数据架构可能如下所示:
第 2 步:添加您的数据
第 3 步:然后您将能够使用 SQL COUNT 和 DISTINCT 来查找数据中的唯一行 table(s)
我对在 Snowflake 中编写查询还很陌生,运行 遇到了小问题。我正在尝试计算一个项目在同一列的列表中出现的次数。
我能够使用 flatten 函数,然后尝试添加 count 函数,但没有成功。
这是我的数据的虚拟版本:
Ticket# Tasks
1 ["cut apple","peel orange","slice cheese"]
2 ["slice cheese","peel orange"]
3 ["cut apple"]
4 ["cut apple","slice cheese"]
5 ["cut apple", "chop kiwi"]
这是我希望输出的样子: (希望按降序顺序自动填充不同的任务列表)
Tasks Quantity
Cut Apple 4
Slice Cheese 3
Peel Orange 2
Chop Kiwi 1
评论太长,但您可以查看指导,然后尝试编写示例查询。虽然您有机会在学习的同时这样做,但我会调查 Data Normalization 并调整您的 "Tasks" 列。
您应该进行二次查找 table,其中包含主键 ID 和每个唯一任务的描述(您将在数据规范化中看到)。因此,您可以从数据上下文到文档,我将提供布局示例,看看它对您有何帮助。
从查找任务开始table...
Tasks Table
TaskID TaskDescription
1 cut apple
2 peel orange
3 slice cheese
4 chop kiwi
然后,您将有另一个 table 具有 TicketID,第三个 table 显示每个 TicketID 的多条记录。
Ticket Table
TicketID ExPurchaseDate
1 someDate
2 sameDate
3 etc...
现在,每张票的详细信息 table。
TicketTasks Table
TicketTaskID TicketID TaskID
1 1 1
2 1 2
3 1 3
4 2 3
5 2 2
6 3 1
7 4 1
7 4 3
8 5 1
9 5 4
尝试通过规范化来消化这些,然后研究使用 COUNT(*) 和 GROUP BY 编写 sql 查询。非常乐意在之后为您提供更多帮助,但希望这些帮助能为您提供一些帮助。
第 1 步:定义规范化数据模式并将该模式放入数据库。
您的规范化数据架构可能如下所示:
第 2 步:添加您的数据
第 3 步:然后您将能够使用 SQL COUNT 和 DISTINCT 来查找数据中的唯一行 table(s)