4

SQLクエリがあります

select count(salary)
from USER_DETAILS 
where salary>0 and salary<1000 union all
select count(salary)
from USER_DETAILS 
where salary>1000 and salary<10000 union all
select count(salary)
from USER_DETAILS 
where salary>10000 and salary<100000

同じクエリを実行する他の論理的またはより堅牢な方法はありますか(できればhqlで)。

前もって感謝します

4

2 に答える 2

6

これを試してみてください。

SELECT  COUNT(CASE WHEN salary >= 0 and salary <= 1000 THEN salary END) "salary >= 0 and salary <= 1000",
        COUNT(CASE WHEN salary >= 1000 and salary <= 10000 THEN salary END) "salary >= 1000 and salary <= 10000",
        COUNT(CASE WHEN salary >= 10000 and salary <= 100000 THEN salary END) "salary >= 10000 and salary <= 100000"
from    user_details
于 2013-02-18T06:44:30.990 に答える
3

CASE 文を使ってみる

select  
     count(case when sal between 0 and 1000 then 1 end)
     count(case when sal between 1000 and 10000 then 1 end) ,
     count(case when sal between 10000 and 100000 then 1 end)
from user_details;

else最後に配置できるキーワードもあります(必要な場合)

たとえば、参照
1.ここ
2.これはあなたの要件に合います

于 2013-02-18T06:49:33.080 に答える