[英]SUM a group of SUMS
我在我的代碼中創建已經包含SUMS的兩行總和時遇到了麻煩。 我最終遇到一個錯誤。 有人可以幫助我提供代碼嗎? 我想要的計算是SUM(yr_L / yr_CC)。 我意識到我不能使用別名來進行計算,但是我似乎無法使它正常工作。
下面的工作原理,沒有復雜的SUM計算行...
SELECT
IF (Artist LIKE '%Bethel%' , 'Bethel', NULL ) as Artist,
COUNT(IF(CCD > 0,1,NULL)) as "c_CC",
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) as yr_CC,
COUNT(IF(LD > 0,1,NULL)) as c_L,
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) as yr_L,
COUNT(IF(FD > 0,1,NULL)) as c_F,
ROUND(SUM(F28) / COUNT(IF(FD > 0,1,NULL)) * 13,0) as yr_F,
COUNT(IF(MTD > 0,1,NULL)) as c_MT,
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) as yr_MT,
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) +
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) +
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) +
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0)
AS yr_Total
FROM praisecharts_reporting.large_sales_report
GROUP BY 1
這是我創建錯誤的方法(添加的方程式周圍有空格):
SELECT
IF (Artist LIKE '%Bethel%' , 'Bethel', NULL ) as Artist,
COUNT(IF(CCD > 0,1,NULL)) as "c_CC",
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) as yr_CC,
COUNT(IF(LD > 0,1,NULL)) as c_L,
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) as yr_L,
SUM (
(
SUM(L28) / COUNT(IF(LD > 0,1,NULL)) -- yr_L
) /
(
SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) -- yr_CC
)
)
AS r_L_C,
COUNT(IF(FD > 0,1,NULL)) as c_F,
ROUND(SUM(F28) / COUNT(IF(FD > 0,1,NULL)) * 13,0) as yr_F,
COUNT(IF(MTD > 0,1,NULL)) as c_MT,
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) as yr_MT,
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) +
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) +
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) +
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0)
AS yr_Total
FROM praisecharts_reporting.large_sales_report
GROUP BY 1
在這里最簡單的操作可能是重復兩個和以得到商:
SELECT
IF (Artist LIKE '%Bethel%' , 'Bethel', NULL) AS Artist,
COUNT(IF(CCD > 0,1,NULL)) AS "c_CC",
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13, 0) AS yr_CC,
COUNT(IF(LD > 0,1,NULL)) as c_L,
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) as yr_L,
COUNT(IF(FD > 0,1,NULL)) as c_F,
ROUND(SUM(F28) / COUNT(IF(FD > 0,1,NULL)) * 13,0) as yr_F,
COUNT(IF(MTD > 0,1,NULL)) as c_MT,
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) as yr_MT,
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) +
ROUND(SUM(L28) / COUNT(IF(LD > 0,1,NULL)) * 13,0) +
ROUND(SUM(MT28) / COUNT(IF(MTD > 0,1,NULL)) * 13,0) +
ROUND(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL)) * 13,0) AS yr_Total,
-- new code here:
ROUND( (SUM(L28) / COUNT(IF(LD > 0,1,NULL))) /
(SUM(CC28) / COUNT(IF(CCD > 0,1,NULL))), 0) AS new_column
FROM praisecharts_reporting.large_sales_report
GROUP BY 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.