例如,我有一个类似
的表格values
10
20
30
40
在这张桌子上的情况我有这样的GROUP BY:
SELECT ???
FROM tbl
GROUP BY values
我需要检查该组是否有某些值,例如30
UPD: 在实际任务中,a有一个包含许多列和其他操作的表,在一列中我需要检查该列的每个组中是否有值。
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
答案 0 :(得分:2)
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 ;
答案 1 :(得分:0)
我没有得到你在select子句中拥有的东西..但是如果你想通过查询运行组时也看到输出中的值,试试这个
选择函数(),来自tbl group的值按值
function() - 可以是任何函数,如 - count或sum
如果你只想要特定于值30 ..那么添加一个where子句值= 30。
答案 2 :(得分:0)
如果您的目的是查找是否存在某个值,则不需要使用group by子句。 如果您还考虑了性能,请使用此方法。
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'
)