我有一个要求,我要按以下特定格式组合显示购物的顾客数量。
Format A Format B Format C
Format A 10 20 30
Format B 20 30 40
Format C 30 40 50
例如以以下格式。
所需的输出:
仅使用格式A购物的客户数量为10。
使用A和B格式购物的客户数量为20。
使用A和C格式购物的客户数量为30。
依此类推。
如何使用查询完成此操作?
答案 0 :(得分:0)
没有足够的信息清楚地了解您的要求,但我认为您的数据如下所示:
TXT | Format A |Format B | Format C
----------------------------------------
Format A | 10 | 20 | 30
Format B | 20 | 30 | 40
Format C | 30 | 40 | 50
现在,如果您要透视此表以显示每个组合的值而不重复,则可以使用如下逻辑:
SELECT
'A' || CASE WHEN RIGHT("TXT",1) = 'A' THEN '' ELSE RIGHT("TXT",1) END AS "FORMAT" ,
"Format A" AS "OUTPUT"
FROM
"YOUR_TABLE"
UNION
SELECT
'B' || CASE WHEN RIGHT("TXT",1) = 'B' THEN '' ELSE RIGHT("TXT",1) END,
"Format B" AS "OUTPUT"
FROM
"YOUR_TABLE"
WHERE
"TXT" != 'Format A'
UNION
SELECT
'C' || CASE WHEN RIGHT("TXT",1) = 'C' THEN '' ELSE RIGHT("TXT",1) END,
"Format C" AS "OUTPUT"
FROM
"YOUR_TABLE"
WHERE
"TXT" NOT IN ('Format A', 'Format B')
;
输出将如下所示:
FORMAT | OUTPUT
A | 10
AB | 20
AC | 30
B | 30
BC | 40
C | 50