Sql 带有GROUPBY和Case语句的子查询

Sql 带有GROUPBY和Case语句的子查询,sql,oracle,group-by,subquery,case,Sql,Oracle,Group By,Subquery,Case,我有两个表,一个是国家表,另一个是阈值表 Country表中有如下列和数据: ID国家计数年份 00001印度2002011 00001印度4002013 00001日本10002011 00001日本5502013 00001中国4002011 阈值表有如下数据: ID低值高值 000015001000 这意味着如果计数>=500则低,如果计数>500和=1000则高 我想要这样的结果: 国家计数阈值低值高值 印度600中等5001000 日本1550高5001000 China400Low5

我有两个表,一个是国家表,另一个是阈值

Country表中有如下列和数据:
ID
国家
计数
年份

00001
印度
200
2011

00001
印度
400
2013

00001
日本
1000
2011

00001
日本
550
2013

00001
中国
400
2011

阈值表有如下数据:
ID
低值
高值

00001
500
1000

这意味着如果
计数>=500
,如果
计数>500和<1000
中等
,如果
计数>=1000

我想要这样的结果:
国家
计数
阈值
低值
高值

印度
600
中等
500
1000

日本
1550高
500
1000

China
400
Low
500
1000

所以我想写一个
SQL查询

我已经在使用此查询:

SELECT C.Country,C.Count
,CASE WHEN C.Count <= T.Low_Value THEN 'Low' WHEN C.Count BETWEEN T.High_Value AND T.Low_Value THEN 'Medium' ELSE 'High' END AS Threshold,
T.Low_Value, T.High_Value FROM 
(SELECT ID,Country,Sum(Count) AS Count 
FROM Country 
WHERE ID=00001 
GROUP BY ID,Country) C 
JOIN Threshold T 
ON C.ID = T.ID
选择C.国家/地区、C.计数

,C.Count
Count
为保留字时的大小写。选择其他别名或在别名周围使用双引号

SELECT C.Country,
       C."Count",
       CASE WHEN C."Count" <= T.Low_Value THEN 'Low'
            WHEN C."Count" BETWEEN T.High_Value AND T.Low_Value THEN 'Medium'
            ELSE 'High' END AS Threshold,
       T.Low_Value,
       T.High_Value
FROM   (
  SELECT ID,Country,Sum("Count") AS "Count"
  FROM Country 
  WHERE ID=00001 
  GROUP BY ID,Country
) C 
JOIN Threshold T 
ON C.ID = T.ID
选择C.国家/地区,
C.“计数”,

当C.“Count”时,可使用以下命令执行:

SELECT Country
      ,Total
      ,CASE WHEN Total <= Low_Value THEN 'Low'
            WHEN Total BETWEEN Low_Value AND High_Value THEN 'Medium'
        ELSE 'High' END AS Threshold
      FROM (SELECT ID
          ,Country
          ,Low_Value
          ,High_Value
          ,SUM(Count) Total
         FROM (SELECT C.ID
             ,C.Country
             ,C.Count
             ,T.Low_Value
             ,T.High_Value
           FROM Country C JOIN Threshold T
           ON C.ID=T.ID
           WHERE C.ID =00001)
        GROUP BY Country,Low_Value,High_Value)
选择国家/地区
全部的

,CASE WHEN-Total这是一个输入错误:)我并没有完全使用这个查询,我使用了Count来理解。我没有使用Count作为别名。内部查询正在运行。这是一个case表达式,不是case语句。