所以我有一个事件表:
incidentID | threatlevel | typeOfIncident | region
__________________________________________________
1 5 H1N5 West
2 5 Zombie Apocalyse West
3 5 Zombie Apocalyse South
4 5 H1N5 North
5 5 Zombie Apocalyse East
6 3 Zombie Apocalyse West如何根据两种不同类型的事件检索每个区域的威胁级别总和?我尝试了按区域分组,但它消除了所有相似的区域。
如何在一条SQL语句中检索所有这些值:
例如
总威胁等级为0的僵尸启示录来自北部地区,
南部地区僵尸启示录的总威胁等级为5级,
东部地区僵尸启示录的总威胁等级为5级,
来自西部地区的僵尸启示录的总威胁等级为8,
来自北部地区的H1N5的总威胁级别为5,
南部地区H1N5的总威胁级别为0
东部地区H1N5的总威胁级别为0
来自西部地区的H1N5总威胁级别为5,
返回如下:0作为ZombieNorth,5作为ZombieSouth,5作为ZombieEast,8 ZombieWest,5作为H1N5North,0作为H1N5South,0作为H1N5East,5 H1N5West,
发布于 2016-04-08 19:45:57
在任何数据库中,都可以对GROUP BY使用两个密钥
select typeOfIncident, region, sum(threatlevel) as total_threatlevel
from t
group by typeOfIncident, region;发布于 2016-04-08 19:40:38
试试这个:
SELECT typeOfIncident,
SUM(CASE WHEN region = 'West' THEN threatlevel ELSE 0 END) AS WestThreatLevel,
SUM(CASE WHEN region = 'East' THEN threatlevel ELSE 0 END) AS EastThreatLevel,
SUM(CASE WHEN region = 'North' THEN threatlevel ELSE 0 END) AS NorthThreatLevel,
SUM(CASE WHEN region = 'South' THEN threatlevel ELSE 0 END) AS SouthThreatLevel
FROM mytable
GROUP BY typeOfIncidentSELECT子句使用条件聚合来计算每个单独region的threatlevel总和。
发布于 2016-04-08 19:49:03
你的问题中有以下几点让我感到困惑:
来自西部地区的僵尸启示录
总威胁级别为8
..。
来自西部地区的僵尸启示录的总威胁等级为5
假设第二个应该是
西部地区H1N5的
总威胁级别为5
那么我想答案是
SELECT
region
,typeOfIncident
,SUM(threatLevel)
FROM
<table>
GROUP BY
region
,typeOfIncident
;https://stackoverflow.com/questions/36498613
复制相似问题