Mysql top5 和剩余的总和与其他一样

标签 mysql

基本上,我试图将公司所有季度的值相加,并将其余部分分组到一个 SQL 查询中。我在这里看到了一些例子,但我无法让它工作。

这是我的查询:

SELECT name, ifnull(q1_2014,0) + ifnull(q2_2014,0) + 
ifnull(q3_2014,0) + ifnull(q4_2014) as yearly

select (CASE    

WHEN @curRank < 5 THEN yearly ELSE 'others' 
                END AS yearly)

group others
where country ='Russia';

我的 table 是

Country name    q1_2014 q2_2014 q3_2014 q4_2014
Russia  CompanyA    6   6   6   6
Russia  CompanyB    5   5   5   5
Russia  CompanyC    4   4   4   4
Russia  CompanyD    3   3   3   3
Russia  CompanyE    2   2   2   2
Russia  CompanyF    1   1   1   1
Russia  CompanyG    1   1   1   1
Russia  CompanyH    1   1   1   1
Russia  CompanyI    1   1   1   1
Russia  CompanyJ    1   1   1   1
Russia  CompanyK    1   1   1   1

预期结果应该是每年排名前 5 名的公司的总和与其他公司的剩余总和的总和。

CompanyA    24
CompanyB    20
CompanyC    16
CompanyD    12
CompanyE    8
Others  24

我做错了什么?

最佳答案

检查这个

select IF(rank <=5,name,'others') as Company,sum(yearly) from( SELECT  `name`, IFNULL(`q1_2014`,0)+IFNULL( `q2_2014`,0)+ IFNULL(`q3_2014`,0)+ IFNULL(`q4_2014`,0) as yearly,
@curRank := @curRank + 1 AS rank
from Table1,(SELECT @curRank := 0) r   where country='Russia' ORDER BY yearly desc) as Table2 group by company

DEMO

关于Mysql top5 和剩余的总和与其他一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26274949/

相关文章:

android - ToggleButtons 的 SQLite Dynamic where-clause

php - 在 php 中调整大小后显示图像出错

php - md5 salt hash 在数据库中找不到相等的条目

java - 从mysql数据库获取数据并显示在android上

php - CakePHP 查询调用 COUNT() 两次,原因不明

mysql - 连接到 tutum 端点上的 mysql docker

php - 数据库连接如何在php-mysql中工作

php - 多行插入和返回 id

mysql - 两个右连接

mysql - 将 LIMIT 与 UNION 结合使用时 MariaDB 的奇怪行为