mysql - 跨不同日期的 MySQL 选择语句
问题描述
我有一个看起来像这样的表:
Month/Year id url kw_count IMP CLK POS CTR
Aug-2018 1 /url-1 222 444 122 4 1.2
Sept-2018 2 /url-1 232 534 123 4 1.2
Oct-2018 3 /url-1 224 445 124 4 1.2
Nov-2018 4 /url-1 212 478 125 4 1.2
Aug-2018 5 /url-2 233 434 126 4 1.2
Sept-2018 6 /url-2 311 433 128 4 1.2
Oct-2018 7 /url-2 299 423 123 4 1.2
Nov-2018 8 /url-2 232 411 122 4 1.2
Dec-2018 9 /url-2 231 465 156 5 1.1
我想选择两个不同月的所有唯一网址及其指标。像这样……2018 年 8 月和 9 月……</p>
/url-1, kw_count (aug), kw_count (sept), imp (aug), img (sept)...
等等,然后对于 url-2 也是一样的
我不会事先知道 URL,它只是根据所选日期进行选择。
我一辈子都想不通我怎么能做到这一点。我和其他人一起玩过,group by
但我很挣扎。
我怎样才能做到这一点?
解决方案
这样的事情应该做你想做的事:
SELECT url,
SUM(CASE WHEN `Month\Year` = 'Aug-2018' THEN kw_count END) AS `kw_count (Aug)`,
SUM(CASE WHEN `Month\Year` = 'Sep-2018' THEN kw_count END) AS `kw_count (Sep)`,
SUM(CASE WHEN `Month\Year` = 'Aug-2018' THEN IMP END) AS `IMP (Aug)`,
SUM(CASE WHEN `Month\Year` = 'Sep-2018' THEN IMP END) AS `IMP (Sep)`,
SUM(CASE WHEN `Month\Year` = 'Aug-2018' THEN CLK END) AS `CLK (Aug)`,
SUM(CASE WHEN `Month\Year` = 'Sep-2018' THEN CLK END) AS `CLK (Sep)`,
SUM(CASE WHEN `Month\Year` = 'Aug-2018' THEN POS END) AS `POS (Aug)`,
SUM(CASE WHEN `Month\Year` = 'Sep-2018' THEN POS END) AS `POS (Sep)`,
SUM(CASE WHEN `Month\Year` = 'Aug-2018' THEN CTR END) AS `CTR (Aug)`,
SUM(CASE WHEN `Month\Year` = 'Sep-2018' THEN CTR END) AS `CTR (Sep)`
FROM metrics
GROUP BY url
输出(用于您的样本数据):
url kw_count (Aug) kw_count (Sep) IMP (Aug) IMP (Sep) CLK (Aug) CLK (Sep) POS (Aug) POS (Sep) CTR (Aug) CTR (Sep)
/url-1 222 232 444 534 122 123 4 4 1 1
/url-2 233 311 434 433 126 128 4 4 1 1
构建查询时,您需要适当地调整日期和列名。我创建了一个演示SQLFiddle来玩(如果您发布的是文本而不是数据的图像,那会容易得多!)。
推荐阅读
- c++ - 找不到 LMDB(缺少:LMDB_INCLUDE_DIR LMDB_LIBRARIES)
- excel - 使用宏将公式粘贴到一系列单元格中
- c# - IBM MQ Windows 客户端 C# 连接到服务器失败并出现 2298 错误
- php - PHP strtotime 获取给定年份的最后一天
- c# - 我使用了太多的 if 语句
- javascript - chart.js 数据通过 API 根据选择动态形成
- mysql - 这种情况下怎么写SQL?
- python - 日期范围内的 xlsxwriter
- google-apps-script - 电子表格插件身份验证错误 - 文档所有者和活动用户不匹配
- angular - 如何正确地将带有 i18n 的 Angular 6 应用程序构建到带有 baseHref 的“语言环境目录”中?