1

たとえば、私は次のようなテーブルtblを持っています

values
10
20
30
40

このテーブルでは、次のようなGROUPBYがあるという条件があります。

SELECT ???
FROM tbl 
GROUP BY values

グループに何らかの値があることを確認する必要があります。たとえば、30

UPD: 実際のタスクでは、多くの列とその他の操作を含むテーブルがあり、1つの列で、この列のすべてのグループの値を確認する必要があります。

UPD2: 次のようなものが必要です:

select 
min(created_timestamp),
max(resource_id),
max(price),
CASE WHEN event_type has (1704 or 1701 or 1703) THEN return found value END
CASE WHEN event_type has (1707) THEN return 1707 END
from subscriptions
group by guid
4

3 に答える 3

3
SELECT
    MIN(created_timestamp),
    MAX(resource_id),
    MAX(price),
    MIN(CASE WHEN event_type IN (1704, 1701, 1703) 
                 THEN found_value 
             WHEN event_type = 1707 
                 THEN 1707 
                 ELSE NULL 
        END)
FROM subscriptions
GROUP BY guid ;
于 2012-08-10T08:50:57.300 に答える
0

何らかの値が存在するかどうかを確認することが目的の場合は、groupby句を使用する必要はありません。パフォーマンスも考慮する場合は、この方法を使用してください。

SELECT DECODE (COUNT(1),0,'Not Exist','Yes has some values')
FROM dual
WHERE EXISTS ( SELECT 1
               FROM tbl
               WHERE VALUES='&Your_Value_To_Check'
               )
于 2012-08-09T15:00:54.000 に答える
0

select句にあるものを取得できませんでした..しかし、group by queryを実行したときに出力にも値を表示したい場合は、これを試してください

function()、tblgroupbyvaluesからの値を選択します

function()---countやsumのような任意の関数にすることができます

値30のみに固有にしたい場合は、where句の値=30を追加します。

于 2012-08-09T14:49:54.080 に答える