postgresql 如何“连接”两个SQL命令输出

t0ybt7op  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(167)

我正在学习SQL。我的搜索没有结果,因为我不认为我使用了正确的术语。
我在PostgreSQL中有一个带有datetime列的表。我想做的是在结果集中创建一个列,输出如下:Q2/'22Q4/'23
我试过使用+,但不起作用(我得到一个错误)。我不知道如何继续下去。在SQL中有办法吗?

SELECT 
    name, COUNT(name), 
    DATE_TRUNC('quarter', date) AS quarterview,
    CASE 
        WHEN DATE_TRUNC('quarter', date) = '2022-04-01 00:00:00' 
            THEN EXTRACT(quarter FROM DATE_TRUNC('quarter', date)) + '/\'' + EXTRACT(year FROM DATE_TRUNC('year', date))
    END
FROM
    mytable

字符串
有没有更好的方法来做到这一点?否则我将不得不为每个季度和每年写案例。
同样在case语句中,我试图使用别名“quarterview”,但得到一个错误,说“quarterview”不是一个列。有没有一种方法可以使用别名而不是多次写入DATE_TRUNC

drkbr07n

drkbr07n1#

我们可以像下面这样使用TO_CHAR函数和字符串连接来检查这个

SELECT 
    name, 
    count(name),
    'Q' || extract(quarter from date) || '/''' || substring(cast(extract(year from date) as text) from 3 for 2) as quarter_year_format
FROM 
    mytable
GROUP BY 
    name, quarter_year_format;

字符串

相关问题