繁体   English   中英

如何为不同的值列表连续获取唯一值?

[英]How to get a unique value in a row for different list of values?

这是我写的查询:

select c.id, CONCAT(c.major_version, '.', c.minor_version) as versions
from event_ids c
where c_id in ('101') group by c_id, major_version, minor_version;

这是我得到的结果

ID 版本
101 0.0
101 1.0
101 2.0
101 3.0

我正在尝试针对同一 id 的不同值列表获取单个值。

ID 版本
101 0.0
1.0
2.0
3.0

如何编写查询以获得所需的结果?

尝试这个

select (case when rowNumber = 1 then c_id else null end) id, versions 
from (
    select ROW_NUMBER() OVER( PARTITION BY c.c_id ORDER BY major_version) as rowNumber, c.c_id, 
        CONCAT(c.major_version, '.', c.minor_version) as versions
    from event_ids c
    where c_id in ('101') group by c_id, major_version, minor_version
) tempTable

你可以试试

select case when c.major_version = 0 and c.minor_version = 0 then c.id else null 
end as id, 
CONCAT(c.major_version, '.', c.minor_version) as versions
from event_ids c
where c_id in ('101') group by c_id, major_version, minor_version;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM