PieCloudDB 中的 PERIOD_ADD() 和 DATE_FORMAT()

问题描述 投票:0回答:1

我正在从MySQL迁移到PieCloudDB,MySQL中有一个查询:

WITH base AS (
        SELECT account_id, DATE_FORMAT(day, '%Y%m') AS yearmonth
        FROM Transactions
            JOIN Accounts USING (account_id)
        WHERE type = 'Creditor'
        GROUP BY account_id, DATE_FORMAT(day, '%Y%m')
        HAVING SUM(amount) > MAX(max_income)
    )
SELECT DISTINCT account_id
FROM base
WHERE (account_id, PERIOD_ADD(yearmonth, 1)) IN (
    SELECT account_id, yearmonth
    FROM base
)

但是我发现PieCloudDB不支持

DATE_FORMAT()
PERIOD_ADD()
,我需要找到替代方案。

sql mysql
1个回答
0
投票

嗯,查阅了一些文档以及google的帮助后,了解到在PieCloudDB中,可以使用

TO_CHAR()
代替
DATE_FORMAT()
,但是没有找到类似
PERIOD_ADD()
的功能,我尝试实现一下直接不使用函数。

WITH base AS (
    SELECT account_id, TO_CHAR(day, 'YYYYMM') AS yearmonth
    FROM Transactions
    JOIN Accounts USING (account_id)
    WHERE type = 'Creditor'
    GROUP BY account_id, TO_CHAR(day, 'YYYYMM')
    HAVING SUM(amount) > MAX(max_income)
)
SELECT DISTINCT account_id
FROM base
WHERE (account_id, (yearmonth::int + 1)::text) IN (
    SELECT account_id, yearmonth
    FROM base
);
© www.soinside.com 2019 - 2024. All rights reserved.