gpt4 book ai didi

sqlite - 在 group_concat 中使用 sum

转载 作者:行者123 更新时间:2023-12-03 19:41:41 25 4
gpt4 key购买 nike

假设我有一张 table ,产品。这包含几个具有不同增值税率和增值税率的产品:

产品

ArticleId | Price | VatPercentage | VatPrice
(integer) (numeric) (varchar) (numeric)
--------------------------------------------
1 100 25.0000000000 25
2 80 25.0000000000 20
3 50 8.0000000000 4
4 70 8.0000000000 5.6
5 20 0 0
0

现在我需要使用 Group_concat 构建字符串,并按 vatpercentage 对价格求和,其中 VatPrice 不为 0,价格不为 0。

在这种情况下我想要返回的结果:
{a}25{b}45 SEK{c}{a}8{b}9.6 SEK{c}

我试过的代码:
select 
group_concat('{a}' ||
CAST(VatPercentage as integer) ||
'{b}' || SUM(VatPrice) ||
' SEK' || '{c}','')
FROM Product
group by VatPercentage
having Count(Price) > 0

Fiddle

感谢正手

最佳答案

在子查询中进行常规连接,然后使用 GROUP_CONCAT在外部查询中,因为您不能在另一个参数中使用一个聚合函数。

SELECT GROUP_CONCAT(Result, '|') Results
FROM (
SELECT 'VatPercentage:' || CAST(VatPercentage AS INTEGER) || '% VatPrice: '
|| SUM(VatPrice) Result
FROM Product
WHERE VatPercentage != '0'
GROUP BY VatPercentage) x

您也不需要 HAVING条款。这只是排除了所有 Price 的结果。值为 NULL .但是您的示例结果跳过了 VatPercentage 的行。是零,所以我把它放在 WHERE条款。

DEMO

关于sqlite - 在 group_concat 中使用 sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com