首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列中的SQL比较值

列中的SQL比较值
EN

Stack Overflow用户
提问于 2017-01-24 19:53:27
回答 2查看 88关注 0票数 0

我需要比较电源值最后一个字符W1与W6,W2与W7,W3与W8等。如果电源值不同,我需要输出单元和电源信息。

代码语言:javascript
复制
  cell   | power 
---------+-------
 HUNDAW1 |   300
 HUNDAW2 |   300
 HUNDAW3 |   300
 HUNDAW6 |   300
 HUNDAW7 |   320
 HUNDAW8 |   300

比较电池的功率。不同的功率值

代码语言:javascript
复制
HUNDAW1 & HUNDAW6 
HUNDAW2 & HUNDAW7 
HUNDAW3 & HUNDAW8 

  cell   | power 
---------+-------
 HUNDAW2 |   300
 HUNDAW7 |   320
EN

回答 2

Stack Overflow用户

发布于 2017-01-24 20:02:34

代码语言:javascript
复制
with t (cell, power) as ( values
    ('HUNDAW1',300),
    ('HUNDAW2',300),
    ('HUNDAW3',300),
    ('HUNDAW6',300),
    ('HUNDAW7',320),
    ('HUNDAW8',300)
)
select
    t0.cell as t0_cell, t0.power as t0_power,
    t1.cell as t1_cell, t1.power as t1_power
from
    t t0
    inner join
    t t1 on t0.cell < t1.cell
where
    t0.power <> t1.power
    and
    (t0.cell, t1.cell) in (
        ('HUNDAW1','HUNDAW6'),('HUNDAW2','HUNDAW7'),('HUNDAW3','HUNDAW8')
    )
order by t0.cell, t1.cell
;
 t0_cell | t0_power | t1_cell | t1_power 
---------+----------+---------+----------
 HUNDAW2 |      300 | HUNDAW7 |      320
票数 0
EN

Stack Overflow用户

发布于 2017-01-24 20:10:15

代码语言:javascript
复制
with    t as
        (
            select  cell,power
                   ,count(*)     over ()               as cnt
                   ,row_number() over (order by cell)  as rn

            from    mytable
        )

select      t1.cell,t1.power

from                t as t1

            join    t as t2

            on      t2.rn = (t1.rn + (t1.cnt/2) - 1) % t1.cnt + 1

where       t1.power <> t2.power

order by    t1.cell      

代码语言:javascript
复制
+---------+-------+
| cell    | power |
+---------+-------+
| HUNDAW2 | 300   |
+---------+-------+
| HUNDAW7 | 320   |
+---------+-------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41827596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档