gpt4 book ai didi

mysql - 简单的 PIVOT 查询抛出错误消息

转载 作者:行者123 更新时间:2023-11-29 10:07:28 25 4
gpt4 key购买 nike

我使用以下 SQL 从我们的数据库获取访问量:

SELECT 
t.country, MONTH(visit_date), t.visits
FROM
visits t
WHERE
t.visit_date BETWEEN '2017-01-01' AND '2017-12-31'
ORDER BY
t.country

此查询的结果如下所示:

   Country     Month      Visits
-------------------------------
DE 1 5.000
DE 2 6.000
: : :
: : :
US 1 5.400
US 2 3.000
: : :
: : :

到目前为止,一切都运行良好。

现在我想旋转结果,使其最终看起来像这样:

        1          2        3        4
DE 10.000 15.000 30.000 20.000
US 20.220 18.400 40.000 19.000

因此我尝试使用以下 SQL:

SELECT 
*
FROM
(SELECT t.country, MONTH(visit_date), t.visits
FROM visits t
WHERE t.visit_date BETWEEN '2017-01-01' AND '2017-12-31'
ORDER BY t.country) AS s
PIVOT
(SUM(t.visits)
FOR MONTH(t.visit_date) IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
) AS pvt

但是,此查询会引发错误:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your DB server version for the right syntax to use near 'PIVOT ( SUM(t.unique_visits) FOR MONTH(t.visit_date) IN (1, 2, 3, 4, 5, 6, 7,' at line 7

您知道我的查询中哪里有错误吗?

最佳答案

在 MySQL 中你没有 PIVOT 函数。

如果您可以使用其他方式连接 SUM 值。

您可以在THIS LINK中找到很好的例子

关于mysql - 简单的 PIVOT 查询抛出错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51647119/

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