簡體   English   中英

Mysql-將sum作為單個表中一個字段中的行之一輸出

[英]Mysql - output of sum as one of the rows in one field in a single table

我的陳述是這樣的:

SELECT, id, Subject, score, fm
FROM(
SELECT id, Subject, SUM( score )/SUM(mm)*100 AS score,   
SUM(mm) as fm,
SUM(CASE WHEN enna IN ('test')
            THEN (score)
        END)/SUM(CASE WHEN enna IN ('test')
            THEN (mm)
        END)*100 AS scoreb
FROM table WHERE id ='2' AND Year='2014' 
AND enna = 'exam'  
GROUP BY Subject)r;

SQL此處

如何將測試用作主題之一,如何在對應的行中將scoreb用作字段score1中的行之一。 我一直在谷歌搜索,找不到任何線索。 我的信譽不足,無法在此處上傳,因此我的預期輸出已上傳到

在此處輸入圖片說明

我認為最簡單的方法是使用union all

SELECT id, Subject, score, mm as fm
FROM table
WHERE id = '2' AND Year='2014' AND enna = 'exam'  
UNION ALL
SELECT id, 'test' as Subject, SUM(score) as score,
       SUM(score)/SUM(mm)*100 AS fm
FROM table
WHERE id = '2' AND Year='2014' AND enna = 'test' ;

順便說一句,我沒有得到fm的計算。 查詢中的計算與您顯示的結果不同。 但這很容易調整。

嘗試這個。

SQL查詢

SELECT id,Subject,MAX(Score) AS 'Score',MAX(mm) AS 'fm'
FROM tbl1
GROUP BY Subject
UNION ALL
(SELECT distinct id, 'test' AS Subject,
(SELECT SUM(score) AS 'score' FROM
(SELECT DISTINCT Score FROM tbl1 WHERE enna='test')t1) ,
(SELECT SUM(mm) AS 'fm' FROM
(SELECT DISTINCT mm FROM tbl1 WHERE enna='test')t2)
FROM tbl1
WHERE enna = 'test') ;

SQL此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM