繁体   English   中英

Oracle sum()列数按行

[英]Oracle sum() column number by row

我正在尝试做一个视图,在该视图中我按行计算每一列中的数字。 到目前为止,我得到的是:

 create OR REPLACE view view_test as                                                                                        
  select distinct(estadodebicicleta.n_bicicleta) as bicicleta_ID, count(estadodebicicleta.guiador) + count(estadodebicicleta.celin) as dmgLVL, estadodebicicleta.guiador, estadodebicicleta.celin, estadodebicicleta.dt_verificacao as data_avaliacao from estadodebicicleta
    group by estadodebicicleta.n_bicicleta, estadodebicicleta.dt_verificacao, estadodebicicleta.guiador, estadodebicicleta.celin 
      order by dmgLVL;

结果如下:

在此处输入图片说明

这是错误的。 我想做的是这样的:

在此处输入图片说明

对我缺少的东西有任何想法吗? 感谢您的关注。

这是查询的格式,使用表别名并删除了不必要的distinct

select b.n_bicicleta as bicicleta_ID,
       count(b.guiador) + count(b.celin) as dmgLVL, b.guiador, b.celin,
       b.dt_verificacao as data_avaliacao
from estadodebicicleta b
group by b.n_bicicleta, b.dt_verificacao, b.guiador, b.celin 
order by dmgLVL;

给定您想要的结果,聚合没有任何意义。 也许这会做您想要的:

select b.n_bicicleta as bicicleta_ID,
       (b.guiador + b.celin) as dmgLVL, b.guiador, b.celin,
       b.dt_verificacao as data_avaliacao
from estadodebicicleta b
order by dmgLVL;

弄乱了我的代码并找到了答案:

create or replace view dados_bicicleta_estados as 
    SELECT edb.n_bicicleta, (edb.guiador + edb.selim + edb.corrente + edb.tfrontal + edb.ttraseiro + edb.pfrontal + edb.ptraseiro + edb.pedais) as dmgLVL, edb.guiador, edb.selim, edb.corrente, edb.tfrontal, edb.ttraseiro, edb.pfrontal, edb.ptraseiro, edb.pedais, edb.dt_verificacao as data_avaliacao
    FROM estadodebicicleta edb
    INNER JOIN (SELECT n_bicicleta, MAX(dt_verificacao) AS MaxDateTime
                  FROM estadodebicicleta
                    GROUP BY n_bicicleta) groupededb 
    ON edb.n_bicicleta = groupededb.n_bicicleta 
    AND edb.dt_verificacao = groupededb.MaxDateTime
    ORDER BY DMGLVL DESC;

这确实给了我想要的东西。 感谢您对所有人的帮助。

暂无
暂无

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

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