mysql - 在 case 循环 mysql 中创建多个数学语句

标签 mysql pivot case summary

我想创建一个计算多个数学公式的语句。然后转换数据。

select szallito_nev, extract(month from beerkezes_datuma) as honap,
((sum(levonas_nedvesseg_miatt)/sum(merlegelt_suly))*100) as sdf
from 2013_backup GROUP BY szallito_nev,month(beerkezes_datuma);
Company name                   month      value
A.K.S.D. VÁROSGAZDÁLKODÁSI KFT  1   1.542938202451533
A.K.S.D. VÁROSGAZDÁLKODÁSI KFT  2   2.085091455775495
A.K.S.D. VÁROSGAZDÁLKODÁSI KFT  3   3.7353360231161536
A.K.S.D. VÁROSGAZDÁLKODÁSI KFT  4   1.979149061085067

如果我这样做,它会很好地工作,但它会垂直显示摘要,我想将其转换为水平的,所以我尝试了这个:

select szallito_nev,
(case extract(month from beerkezes_datuma) when '1' then ((sum(levonas_nedvesseg_miatt)/sum(merlegelt_suly))*100)   else 0 end) as 'H1'
from 2013_backup group by szallito_nev with rollup
company name                         Januar
A.K.S.D. VÁROSGAZDÁLKODÁSI KFT         0
A.S.A. MAGYARORSZÁG KFT.               0
ASCO HUNGARIA KFT                      0

但在此之后我得到了不同的结果。

最佳答案

我会告诉你一个想法-

SELECT
  szallito_nev,
  SUM(IF(month = 1, VALUE, NULL)) Jan,
  SUM(IF(month = 2, VALUE, NULL)) Feb,
  SUM(IF(month = 3, VALUE, NULL)) Mar,
  SUM(IF(month = 4, VALUE, NULL)) Apr
FROM
  -- this is a place for your subquery
  (SELECT szallito_nev...) t
GROUP BY
  szallito_nev

关于mysql - 在 case 循环 mysql 中创建多个数学语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19806278/

相关文章:

python - 如何更有效地将分号分隔的列转换为 0/1/2 指示矩阵?

Python Pandas 日期时间范围之间的累积列

sql - 在 ELSE CASE SQL 查询上使用 Convert

mysql - 使用 3 个表检索单行

Mysql SELECT CASE LIKE 给出 NULL 行

mysql - 联合作为子查询 MySQL

mysql - 计算整个数据列表中的行数

php - UPDATE 根本不影响记录

php - 从 php 回显 html 代码到 html

mysql - 透视 MySQL 表