具有多列结果的sqlite查询

hmmo2u0o  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(396)

我想要一个sqlite数据表:

Margin  Load  Volt
------  ----  ----
10      1     6.0
15      2     6.0
20      3     6.0
35      1     7.0
45      2     7.0
55      3     7.0
91      3     8.0
92      3     8.0
95      3     8.0

并创建新表:

Load  Margin6  Margin7  Margin8
----  -------  -------  -------
1     10       35       91  
2     15       45       92
3     20       55       95

我不知道如何实现这个。

ajsxfq5m

ajsxfq5m1#

您可以执行条件聚合:

select 
    load,
    max(case when volt = 6 then margin end) margin6,
    max(case when volt = 7 then margin end) margin7,
    max(case when volt = 8 then margin end) margin8
from mytable
group by load

如果要创建包含查询结果的表,可以使用 create table ... as select ... 语法:

create table newtable as
select 
    load,
    max(case when volt = 6 then margin end) margin6,
    max(case when volt = 7 then margin end) margin7,
    max(case when volt = 8 then margin end) margin8
from mytable
group by load

我也不建议这样做,因为它没有给您定义约束、主键和其他相关元信息的空间。你也可以 create 先把table放好,然后再给它喂一杯咖啡 insert into ... select ... 声明。

相关问题