使用何かのように:。
select input,
count(*) as quantity
from dummy
where en = 'Y'
group by input
あなたはすでにすべての行をロードし、中having
句のキックの前にそれらをグループ化してきたので、あなたがが使用having en = 'Y'
があることができない理由は言い換えれば、あなたはもはやにのen
列情報を持っていません。それは集約で失われています。
> DROP TABLE DUMMY%
> CREATE TABLE DUMMY (OUTPUT CHAR(2), OQTY INTEGER,
>> INPUT CHAR(1), IQTY INTEGER, EN CHAR(2), FLEX INTEGER)%
> INSERT INTO DUMMY (OUTPUT, OQTY, INPUT, IQTY, EN, FLEX) VALUES
>> ('Y3',1,'X',2,'Y',0), ('Y4',1,'X',2,'Y',0), ('Y5',1,'X',2,'N',0),
>> ('Y6',1,'X',2,'N',0), ('Y1',1,'X',2,'Y',0), ('Y2',1,'X',2,'Y',0)%
> SELECT * FROM DUMMY ORDER BY EN, INPUT, OUTPUT%
OUTPUT OQTY INPUT IQTY EN FLEX
------ ---- ----- ---- -- ----
Y5 1 X 2 N 0
Y6 1 X 2 N 0
Y1 1 X 2 Y 0
Y2 1 X 2 Y 0
Y3 1 X 2 Y 0
Y4 1 X 2 Y 0
> SELECT INPUT, COUNT(*) AS QUANT
>> FROM DUMMY
>> WHERE EN = 'Y'
>> GROUP BY INPUT%
INPUT QUANT
----- -----
X 4
そして、関連する行の1つの更新:参照転写物以下
> UPDATE DUMMY SET INPUT = 'Z' WHERE OUTPUT = 'Y1'%
> SELECT * FROM DUMMY ORDER BY EN, INPUT, OUTPUT%
OUTPUT OQTY INPUT IQTY EN FLEX
------ ---- ----- ---- -- ----
Y5 1 X 2 N 0
Y6 1 X 2 N 0
Y2 1 X 2 Y 0
Y3 1 X 2 Y 0
Y4 1 X 2 Y 0
Y1 1 Z 2 Y 0
> SELECT INPUT, COUNT(*) AS QUANT
>> FROM DUMMY
>> WHERE EN = 'Y'
>> GROUP BY INPUT%
INPUT QUANT
----- -----
X 3
Z 1
以下
チェックはそれがX 1 として出力が得られませんんが、所望1は、X 4 – Navin
@navinです:あなたがしようとしたのですか? paxの解決策は私には正しいように見えます。 – Mat
@Navin、いいえ、それは 'X 4'を与えるでしょう - アップデートを見てください。 – paxdiablo