在Oracle SQL中,可以使用CASE语句和子查询来模拟数据透视表的效果,而无需使用聚合函数。
以下是一个示例代码,展示了如何使用CASE语句和子查询来创建一个简单的数据透视表:
SELECT
t.id,
MAX(CASE WHEN t.category = 'A' THEN t.value END) AS category_a,
MAX(CASE WHEN t.category = 'B' THEN t.value END) AS category_b,
MAX(CASE WHEN t.category = 'C' THEN t.value END) AS category_c
FROM
(
SELECT
id,
category,
value
FROM
your_table
) t
GROUP BY
t.id;
在这个示例中,假设你有一个名为your_table
的表,包含三个列:id
、category
和value
。你想要创建一个数据透视表,以id
为行,category
为列,value
为值。在这种情况下,你可以使用CASE语句来创建三个不同的列,用于每个不同的category值,并使用MAX函数来获取每个组的最大值。
请替换示例代码中的your_table
为你实际使用的表名,并根据你的实际需求调整列名和条件。
下一篇:不使用聚合函数移除重复项