Sql 是否可以在group by中使用大于等于运算符?

Sql 是否可以在group by中使用大于等于运算符?,sql,sql-server,database,Sql,Sql Server,Database,请建议我如何在sql中使用group by中的大于等于运算符。无论您想做什么,这是我唯一能想到的: ... GROUP BY CASE WHEN A >= 1 THEN 1 ELSE 0 END 如果您正在讨论对GROUP BY子句使用>运算符,则: select case when age between 0 and 20 then '0 - 20' when age between 21 and 40 then '21 - 40' else '> 40'

请建议我如何在sql中使用group by中的大于等于运算符。

无论您想做什么,这是我唯一能想到的:

...
GROUP BY 
  CASE WHEN A >= 1 THEN 1
  ELSE 0
  END

如果您正在讨论对GROUP BY子句使用>运算符,则:

select
case when age between 0 and 20 then '0 - 20'
     when age between 21 and 40 then '21 - 40'
else '> 40' end age,
sum(case when survived = 1 then else 0 end) survivors
from rms_titanic
group by 
case when age between 0 and 20 then '0 - 20'
     when age between 21 and 40 then '21 - 40'
else '> 40'
order by
case when age between 0 and 20 then '0 - 20'
     when age between 21 and 40 then '21 - 40'
else '> 40';
这可以写成:

select
case when age between 0 and 20 then '0 - 20'
     when age between 21 and 40 then '21 - 40'
else '> 40' end age,
sum(case when survived = 1 then else 0 end) survivors
from rms_titanic
group by 1
order by 1;
但是,如果要对GROUP BY的结果集使用>运算符,则必须包含HAVING子句:

select
case when age between 0 and 20 then '0 - 20'
     when age between 21 and 40 then '21 - 40'
else '> 40' end age,
passenger_class,
sum(case when survived = 1 then else 0 end) survivors
from rms_titanic
group by 1, passenger_class having count(*) > 20
order by 1;

你想用它做什么?你希望通过这样做实现什么?你想用have代替WHERE吗?你需要给我们一些更具体的答案。可能先读一下?为什么是-1?我不敢相信。不知道,你对一个模棱两可的问题的回答是完全合理的。让你平静下来。是的,我同意。我可以理解这样的问题带来的挫折感,但是,这些问题非常模糊,没有解释提问者的知识水平,也没有列出以前尝试过的内容。如果提问者是初学者,那么这是完全可以的,我个人会告诉他们培训资源,而不是直接给他们答案。在这方面没有学习的余地,这在这项工作中是至关重要的。冷静点。我给了一个
-1
,因为当时的答案只有三行,非常不完整,完全是胡说八道。由于你已经编辑并完成了你的答案,它不再是jibberish,我将删除-1。每个人都有自己的答案,我相信这个答案在假设OP的意思的情况下是完全有效的。可能对任何来自谷歌的访问者都有用。