如何解决SQL:在同一表中获取多个值
我有一个表,其中包含多个用于同一ID的参数:
id identifier_id ts name int_value
6117 12 2020-02-25 11:44:40 Enable 0
6118 12 2020-02-25 11:44:40 Limit1 600000
6119 12 2020-02-25 11:44:40 Limit2 800000
6115 12 2020-02-25 11:44:40 Reset 0
6116 12 2020-02-25 11:44:40 TimePeriod 604800
16648 12 2020-02-28 06:36:50 Enable 1
16778 12 2020-02-28 09:31:19 Limit1 15
16779 12 2020-02-28 09:31:19 Limit2 25
我需要的是identifier_id(此处为12),我想获得Limit1
和Limit2
以及int_values
的这些名称。使用最新的ts
。
我的结果应如下所示:
id identifier_id Limit1_value Limit2_value
16778 12 15 25
我几个小时以来一直在搜索和尝试,但还没有找到对我有用的东西。
解决方法
没有id列 (假设您的表名为参数):
with params as (
select distinct identifier_id
from parameters)
select params.identifier_id,(select int_value from parameters p where p.identifier_id = params.identifier_id and p.name = 'Limit1' order by p.ts desc limit 1) as Limit1,(select int_value from parameters p2 where p2.identifier_id = params.identifier_id and p2.name = 'Limit2' order by p2.ts desc limit 1) as Limit2
from params
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。