【发布时间】:2022-08-18 17:32:59
【问题描述】:
我知道我的问题可能有点奇怪,但我以前没有使用过 Oracle, 我有这个语句来选择列中特定数字的计数并输出结果
select count(*)as Step1 from ALLVALUES WHERE NAME LIKE \'%VALUE%\' AND systime between caltosys(&t1) and caltosys(&t2) AND ROWNUM <= 90000 AND VALUE =\'48\'
这将输出这样的结果
------
Step1
------
20
------
例如,我需要获取多个条件并将每个结果放在列中
select count(*)as Step1 from ALLVALUES WHERE NAME LIKE \'%VALUE%\' AND systime between caltosys(&t1) and caltosys(&t2) AND ROWNUM <= 90000 AND VALUE =\'48\'
select count(*)as Step2 from ALLVALUES WHERE NAME LIKE \'%VALUE%\' AND systime between caltosys(&t1) and caltosys(&t2) AND ROWNUM <= 90000 AND VALUE =\'49\'
...
并输出如下
------------------------------
Step1 | Step2 | Step3 | Step4
------------------------------
20 | 5 | 1 | 4
------------------------------
在我目前的情况下这可能吗?
我试着写成建议的陈述
select to_char(systocal(systime),\'yyyy-mm-dd hh24:mi:ss.ff3\') as Time,
COUNT(case WHEN value =\'48.8\' then value end) as Step1,
COUNT(CASE WHEN value =\'48.75\' then value end) as Step2,
COUNT(CASE WHEN value =\'48.7\' then value end)as Step3,
COUNT(CASE WHEN value =\'48.68\' then value end)as Step4,
COUNT(CASE WHEN value =\'48.6\' then value end)as Step5,
COUNT(CASE WHEN value =\'48.58\' then value end)as Step6,
COUNT(CASE WHEN value =\'48.55\' then value end)as Step7,
COUNT(CASE WHEN value =\'48.52\' then value end)as Step8,
from MEA where ID = 5570 AND systime between caltosys(&t1) and caltosys(&t2) AND ROWNUM <= 100
&t1 - &t2 是时间变量
但是一直给我缺失的表情936