我试图查看我在eache列中按行计数的视图。到目前为止我得到的是:
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;
给出了这个结果:
这是错误的。我想做的是:
对我失踪的事情有任何想法?谢谢你的关注。
答案 0 :(得分:1)
这是您的查询格式化并使用表别名并删除不必要的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;
答案 1 :(得分:0)
弄乱了我的代码,找到了答案:
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;
这给了我想要的东西。并感谢帮助每个人。