我们可以利用SQL中的CASE语句来编写这个查询。我们首先需要一个包含国家和奖牌信息的表格,下面的代码是一个示例表格:
|------------------------------------| | Country | MedalType | Count | |------------------------------------| | USA | Gold | 39 | | USA | Silver | 41 | | USA | Bronze | 33 | | Canada | Gold | 11 | | Canada | Silver | 8 | | Canada | Bronze | 22 | | China | Gold | 38 | | China | Silver | 32 | | China | Bronze | 18 | |------------------------------------|
接下来,我们需要用CASE语句求出每个国家获得的金牌、银牌和铜牌总数。以下是一个示例查询:
SELECT Country, SUM(CASE WHEN MedalType = 'Gold' THEN Count ELSE 0 END) AS GoldCount, SUM(CASE WHEN MedalType = 'Silver' THEN Count ELSE 0 END) AS SilverCount, SUM(CASE WHEN MedalType = 'Bronze' THEN Count ELSE 0 END) AS BronzeCount FROM MedalTable GROUP BY Country;
这个查询将按照国家分组,对每个国家分别计算它们获得的金牌、银牌和铜牌总数,并将结果作为表中的新列返回。