【问题标题】:MySQL SELECT this year vs thist time last year今年的 MySQL SELECT 与去年的这个时候
【发布时间】:2017-09-19 07:59:49
【问题描述】:

所以,我正在尝试为一个项目做一些统计。我正在尝试将今年 pr 月份的数据与去年同月进行比较。

我现在最好的就是这个

SELECT COUNT(tappe_id) FROM tappesesjon WHERE YEAR(tappedato) = YEAR(CURDATE()) GROUP BY MONTH(tappedato) DESC; SELECT COUNT(tappe_id) FROM tappesesjon WHERE YEAR(tappedato) = YEAR(CURDATE() - INTERVAL 1 YEAR) GROUP BY MONTH(tappedato) DESC;

但它并没有真正做到这一点

编辑: 第一个查询给了我今年每个月的“会话”数量,第二个查询给了我去年的相同数量。我想要的是一种让 eksample 了解今年 1 月的会话比去年 1 月多多少次的方法。 我希望这能对我的问题有所了解

EDIT2:
tappe_id tappedato person_nr 1 2016-04-22 1231231231 2 2017-04-22 1231231231 3 2017-05-01 1231231231 4 2016-05-01 1231231231 5 2017-04-23 1231231231 6 2016-05-01 1231231231 7 2017-07-12 1231231231 8 2016-07-07 1231231231 9 2017-08-12 1231231231 10 2016-07-07 1231231231

【问题讨论】:

  • 您将需要更好地解释究竟是什么不起作用。向我们展示这提供了什么以及您期望得到什么。

标签: mysql sql


【解决方案1】:

根据我对您问题的理解,您想知道当前年份和过去一年每月的会话数之间的差异。

这是我对上述问题的解决方案,

SELECT COUNT(a.tappe_id) - COUNT(b.tappe_id)
FROM tappesesjon a, tappesesjon b
WHERE  YEAR(a.tappedato) = YEAR(CURDATE())
    AND a.tappedato = DATE_ADD(b.tappedato, INTERVAL 1 YEAR)
GROUP BY MONTH(a.tappedato);

【讨论】:

  • 不知何故,当我尝试使用该查询时,它返回零(是的,我将 currdate 更正为 curdate)
  • 你能提供几行数据在你的表中。
  • tappe_id tappedato person_nr 1 2016年4月22日1231231231 2 2017年4月22日1231231231 3 2017年5月1日1231231231 4 2016年5月1日1231231231 5 2017年4月23日1231231231 6 2016-05 -01 1231231231 7 2017-07-12 1231231231 8 2016-07-07 1231231231 9 2017-08-12 1231231231 10 2016-07-07 1231231231
  • 嘿,我已经更新了我的答案。这应该很好用。
  • 实际问题是你想得到计数之间的差异,其中“日期”之间的差异为 1 年;而不是上一年的同一个月。
【解决方案2】:

您可以使用条件聚合:

SELECT MONTH(tappeddato),
       SUM(YEAR(tappedato) = YEAR(CURDATE())) as cnt_current,
       SUM(YEAR(tappedato) = YEAR(CURDATE()) - 1) as cnt_lastyera,
FROM tappesesjon
WHERE YEAR(tappedato) IN (YEAR(CURDATE()), YEAR(CURDATE()) - 1)
GROUP BY MONTH(tappedato) DESC;

【讨论】:

  • "#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'as cnt_current, SUM(YEAR(tappedato) = YEAR 附近使用的正确语法(CURDATE() - 1) as cnt_lastyera' at line 2" 在这里找不到问题所在。我才学习 SQL 几个月
猜你喜欢
  • 2018-04-25
  • 2022-11-16
  • 2016-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
相关资源
最近更新 更多