我的表格如下:
Key1 key2 Value Key Online
a 1 "AMAZON" "STORE" True
a 1 10 "AMOUNT" True
a 1 10:00:00 "HOUR" False
a 2 "NIKE" "STORE" False
a 2 5 "AMOUNT" False
如果我想提出一个查询,它会返回给定的key1 + key2,键“STORE”的值+键“AMOUNT”的值我该怎么办?
我希望在这种情况下得到以下结果:
key1 key2 store amount
a 1 "amazon" 10
a 2 "nike" 5
答案 0 :(得分:0)
如果你想得到你在结果表中显示的内容,你只需要这样做:
SELECT key1, key2,
(SELECT LOWER(value) FROM table WHERE key = 'STORE') AS store,
(SELECT value FROM table WHERE key = 'AMOUNT')) AS amount
FROM table
GROUP BY key1, key2;
答案 1 :(得分:0)
实现所需结果的一种方法是使用条件聚合:
select
key1,
key2,
max(case when `key`='STORE' then `value` end) store,
max(case when `key`='AMOUNT' then `value` end) amount
from table1
group by key1, key2;
此外,key
是一个保留字,需要包含在后面的标记中。