如何使用ROLLUP为mysql中的一列创建超级聚合?

如何使用ROLLUP为mysql中的一列创建超级聚合?,mysql,aggregate,rollup,Mysql,Aggregate,Rollup,我有以下表格: CREATE TABLE IF NOT EXISTS Business ( Ticker VARCHAR(255) NOT NULL UNIQUE, Company_Name VARCHAR(255) NOT NULL UNIQUE, Currency CHAR(3) NOT NULL, Portfolio VARCHAR(255) NOT NULL, PRIMARY KEY ( Company_Name

我有以下表格:

CREATE TABLE IF NOT EXISTS Business (
    Ticker        VARCHAR(255) NOT NULL UNIQUE,
    Company_Name  VARCHAR(255) NOT NULL UNIQUE,
    Currency      CHAR(3) NOT NULL,
    Portfolio     VARCHAR(255) NOT NULL,
    PRIMARY KEY ( Company_Name ),
    FOREIGN KEY ( Currency ) REFERENCES Currency ( Currency_Code ) ON UPDATE CASCADE ON DELETE CASCADE,
    FOREIGN KEY ( Portfolio ) REFERENCES Portfolio ( Portfolio_Name ) ON UPDATE CASCADE ON DELETE RESTRICT,
    CONSTRAINT CHK_Ticker CHECK ( Ticker = UPPER( Ticker ) )
);

CREATE TABLE IF NOT EXISTS Dividend (
    Dividend_ID           INTEGER NOT NULL UNIQUE AUTO_INCREMENT,
    Ticker             VARCHAR(255) NOT NULL,
    Dividend_Date         DATE NOT NULL,
    Dividend_Amount                 DOUBLE NOT NULL,
    SGD_XR                   DOUBLE NOT NULL,
    PRIMARY KEY ( Dividend_ID ),
    FOREIGN KEY ( Ticker ) REFERENCES Business ( Ticker ) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT CHK_SGD_XR CHECK ( SGD_XR >= 0 )
);
我想将这些表用于以下选择:

SELECT
        IFNULL( Business.Company_Name,'Total Year To Date Dividends (SGD)' ) AS Company_Name,
        SUM(
            CASE WHEN Dividend.Dividend_Date >= STR_TO_DATE( CONCAT( '1 January ', YEAR(CURDATE()) ), '%d %M %Y' ) AND Dividend.Dividend_Date <= CURDATE() 
            THEN Dividend.Dividend_Amount 
            END) AS Year_To_Date_Dividends,
        SUM(
            CASE WHEN Dividend.Dividend_Date >= STR_TO_DATE( CONCAT( '1 January ', YEAR(CURDATE()) ), '%d %M %Y' ) AND Dividend.Dividend_Date <= CURDATE() 
            THEN Dividend.Dividend_Amount / Dividend.SGD_XR 
            END) AS SGD_Year_To_Date_Dividends
    FROM Business
    LEFT JOIN Dividend
        ON Business.Ticker = Dividend.Ticker
    GROUP BY Business.Company_Name WITH ROLLUP 
选择
如果公司名称为空(业务.公司名称,'年初至今股息总额(SGD)',
总数(
当divident.divident\u Date>=STR\u TO\u Date(CONCAT('1',YEAR(CURDATE()),'%d%M%Y')和divident.divident\u Date=STR\u TO\u Date(CONCAT('1',YEAR(CURDATE()),'%d%M%Y')和divident.divident\u Date而不是:

    SUM(
        CASE WHEN Dividend.Dividend_Date >= STR_TO_DATE( CONCAT( '1 January ', YEAR(CURDATE()) ), '%d %M %Y' ) AND Dividend.Dividend_Date <= CURDATE() 
        THEN Dividend.Dividend_Amount 
        END) AS Year_To_Date_Dividends,
代替

Dividend.Dividend_Amount / Dividend.SGD_XR 
ROUND(Dividend.Dividend_Amount / Dividend.SGD_XR,2)
Dividend.Dividend_Amount / Dividend.SGD_XR