sql - 在 SQL 中创建数据透视表时不断收到错误消息
问题描述
我很难从 SQL 中的数据表生成数据透视表,因为我不断收到相同的错误消息并且不明白为什么。
我的初始表格具有以下形状(我只是过滤我将使用的表格):
== ID == | == Category == | == Description == | == ...
ID1 | Category_A | Description_1 | ...
ID2 | Category_B | Description_2 | ...
ID3 | Category_C | Description_3 | ...
ID3 | Category_A | Description_4 | ...
ID1 | Category_B | Description_2 | ...
ID4 | Category_C | Description_3 | ...
ID5 | Category_A | Description_1 | ...
ID2 | Category_A | Description_1 | ...
ID2 | Category_A | Description_4 | ...
ID5 | Category_B | Description_2 | ...
ID4 | Category_B | Description_6 | ...
ID4 | Category_C | Description_7 | ...
这是一个表格,其中每一行代表特定 ID 的事件描述。给定 ID 有许多事件描述,这就是为什么一个 ID 可以出现在多行上的原因。Category 列只是事件描述的类别。
从这张表中,我的最终目标是获得这样的东西:
== ID == | == Description_1 == | == Description_2 == | == Description_3 == | = ...
ID1 | 1 | 2 | 2
ID2 | 0 | 1 | 1
ID3 | 2 | 0 | 1
ID4 | 0 | 1 | 2
ID5 | 0 | 3 | 0
有数千种不同的 ID 和数百种不同的描述。
这是我尝试过的代码:
WITH agg_table AS (
SELECT ID, Description, COUNT(*) as description_count
FROM original_table
WHERE Category IN ('Category_A', 'Category_B', 'Category_D')
GROUP BY ID, Description
ORDER BY ID
)
SELECT *
FROM agg_table
PIVOT (
SUM(description_count)
FOR Description IN (SELECT DISTINCT Description
FROM original_table
WHERE Category IN ('Category_A', 'Category_B', 'Category_D'))
) AS pivot_table
从原始表中,我按 ID 和描述分组以获得一个 3 列的表,其中每一行给出特定 ID 的特定事件描述发生的次数(我还过滤以仅获取特定类别..)。然后我使用 pivot 函数对表格进行透视并获得我想要获得的内容:一个表格,其中每个 ID 有一行,每一列代表一个描述事件,单元格的值指示描述发生的次数对于给定的 ID。
问题是我不断收到以下错误消息:
Error in SQL statement: ParseException: mismatched input 'FROM' expecting <EOF>(line 1, pos 9)
我真的不知道代码中的问题在哪里。我在某处读到它可能是由别名引起的,但即使没有写别名,我仍然有问题。
我不知道这对我的情况有影响,但我正在使用带有 Spark 2.4.3、Scala 2.11 的数据块
提前感谢您的宝贵时间。如果有不清楚的地方,请告诉我,以便我提供更多细节。
祝你今天过得愉快!
解决方案
推荐阅读
- python - 是否可以将批量标准化的输出而不是激活输出发送到下一层?
- python - 有没有办法在 python var 中保存 mysql 列值?
- javascript - 使用availity-reactstrap-validation时如何处理空值
- ruby-on-rails - 活动记录导入 on_duplicate_key_update SUM 现有值
- python - 无法使用自签名 SSL 证书执行对 URL 的请求
- android - 使用片段管理器
- ios - DateFormatter 在某些情况下返回 nil
- python-3.x - 将具有相同ID的行拆分为不同的列python
- sql - SQL 报表生成器链接报表默认折叠参数选项
- powershell - 在不允许继承的情况下将安全 AD 组添加到文件夹权限