- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
过去一周左右我一直在研究这个问题,但似乎无法找到解决方案。我正在尝试创建一个查询,在其中从各个表中获取数据,主要是按周(weekofyear)聚合日期。因此,我创建了一个日历表,如下所示;
DATE, YEAR, MONTH_OF_YEAR, WEEK_OF_YEAR,
2014-01-01 2014 1 1
2014-01-02 2014 1 1
2014-01-03 2014 1 1
2014-01-04 2014 1 1
2014-01-05 2014 1 1
2014-01-06 2014 1 2
数据会一直持续到任何时候。
所以,我汇总了所有这些表格和数据,并希望得到过去 10 周以及没有事件的几周的结果,我想要 0。
我编写这个查询是为了从 2 个表中获取数据,并将它们连接到日历表的 week_of_year 上(请不要折磨我,SQL 不是我的母语)。
select calendar.YEAR,
calendar.WEEK_OF_YEAR,
ifnull(count(data_transfer.id_data_transfer), 0) as DEVICE_TO_DEVICE,
ifnull(count(device.tag_code), 0) as DEVICE_REGISTRATION
from calendar
left join data_transfer
on data_transfer.WEEK_NUMBER=calendar.WEEK_OF_YEAR -- wee number
and data_transfer.year = calendar.YEAR -- need the year of week
and data_transfer.id_customer = 1 -- specific customer
and data_transfer.cloud_type is null -- specific type etc
and date(data_transfer.TRANSFER_START_TIME) > date(date_sub(now(), INTERVAL 1 YEAR)) -- for the final week to be this week
left join device
on device.WEEK_NUMBER = calendar.WEEK_OF_YEAR
and device.year = calendar.YEAR
and device.ID_CUSTOMER = 1
and date(device.DEVICE_CREATE_DATE) > date(date_sub(now(), INTERVAL 1 YEAR)) -- for the final week to be this week
where date(calendar.date) > date(date_sub(now(),INTERVAL 1 YEAR)) -- for the final week to be this week
group by calendar.year, calendar.WEEK_OF_YEAR
order by calendar.year, calendar.WEEK_OF_YEAR;
查询返回多个 double ,我认为这可能是由于日期表有多个 week_of_year 条目,即 7 由于一周中的天数?
例如,当我使用 group_concat(special_field) 运行它时,我得到的结果如图所示。这就是我要解决的问题
YEAR, WEEK_OF_YEAR, DEVICE_TO_DEVICE, DEVICE_REGISTRATION, group_concat(data_transfer.id_data_transfer), id
2014 46 280 280 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57
这就是我正在尝试解决的问题,任何与此相关的帮助将不胜感激。
最佳答案
是的,问题是您有多个记录具有相同的年份和年份值。
创建一个日历表,其中表中只有一个年-周对,并使用它来连接您的日志数据。
或者在查询中使用 select unique。
select distinct calendar.YEAR,
calendar.WEEK_OF_YEAR,
ifnull(count(data_transfer.id_data_transfer), 0) as DEVICE_TO_DEVICE,
ifnull(count(device.tag_code), 0) as DEVICE_REGISTRATIO
from...
select c.YEAR,
c.WEEK_OF_YEAR,
ifnull(count(data_transfer.id_data_transfer), 0) as DEVICE_TO_DEVICE,
ifnull(count(device.tag_code), 0) as DEVICE_REGISTRATION
from (select distinct YEAR, WEEK_OF_YEAR FROM calendar) c
left join data_transfer
on data_transfer.WEEK_NUMBER=c.WEEK_OF_YEAR -- wee number
and data_transfer.year = c.YEAR -- need the year of week
and data_transfer.id_customer = 1 -- specific customer
and data_transfer.cloud_type is null -- specific type etc
and date(data_transfer.TRANSFER_START_TIME) > date(date_sub(now(), INTERVAL 1 YEAR)) -- for the final week to be this week
left join device
on device.WEEK_NUMBER = c.WEEK_OF_YEAR
and device.year = c.YEAR
and device.ID_CUSTOMER = 1
and date(device.DEVICE_CREATE_DATE) > date(date_sub(now(), INTERVAL 1 YEAR)) -- for the final week to be this week
where date(calendar.date) > date(date_sub(now(),INTERVAL 1 YEAR)) -- for the final week to be this week
group by c.year, c.WEEK_OF_YEAR
order by c.year, c.WEEK_OF_YEAR;
关于Mysql,选择引用日期(weekofyear)的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654326/
我需要根据一年中的哪一周对 MySQL 表进行分区。但是,当我使用 weekofyear() 作为我的分区表达式运行我的分区查询时,我得到了这个: ERROR 1564 (HY000): This p
我的网络服务器在法国,我的数据库设置了欧洲巴黎时区...我的网站实际上是供居住在葡萄牙的人们使用的,他们得到的收入比我在法国少 -1H... 我正在使用此查询来获得本周的点赞数。问题是当它是法国的新一
我希望能够运行一个简单的查询来显示 3 周前一年中的第几周。我尝试了以下方法,但没有成功。 select WEEKOFYEAR(CURDATE()) - INTERVAL 3 WEEK 最佳答案
过去一周左右我一直在研究这个问题,但似乎无法找到解决方案。我正在尝试创建一个查询,在其中从各个表中获取数据,主要是按周(weekofyear)聚合日期。因此,我创建了一个日历表,如下所示; DA
我正在尝试使用以下代码从 NSDate 中获取一年中的星期几: int which = NSYearCalendarUnit | NSMonthCalendarUnit | NSHourCalenda
所以我正在制作一个基本的周选择器,您可以在其中选择周数和年份,并从周起点获取相应的日期。 一个基本的测试场景 let calendar = NSCalendar.currentCalendar() l
当我运行这段代码时: let calendar = Calendar.current var dateComponents = DateComponents() dateCompone
我有一个根据用户选择的日期范围执行的查询。例如:2019年12月12日至2020年1月13日。 // Retrieve count of attendance, no shows and cancel
我在使用某些 MYSQL 时遇到问题。下面的代码一直运行良好,直到一两周前它开始将 2012 年 2 月 21 日之后的所有内容分组在一起。第一个条目是 2011 年 9 月 18 日,所以它已经整整
这是数据生成器代码以及用于解决我的问题的按 weekofyear 分组的 grouby 函数: import pandas as pd import numpy as np np.random.see
我有由年份、该年的周数和工作日标识的日期值,我想将它们转换为简单的日期。 我找不到一个函数或其他简单的方法来组合这些,所以我想出了一个解决方法,使用 generate_series 来获取一个范围内的
weekofyear('20121231') 返回 1 而 weekofyear('20121230') 返回 52 Mysql Ver 5,1,47 Cummunity Nt / Windows 7
我在 Hadoop 文件系统中有一个带有日期列的表。问题是,当我调用 weekofyear(date) 函数时,date = '2014-12-30 09:17:10' 返回 1 。我完全理解为什么会
这个问题在这里已经有了答案: How to get the first day of a given week number in PHP (multi-platform)? (9 个回答) 关闭
在我的应用程序中,我必须设置每周提醒,以便在一周后的同一天/同一时间发出警报。我一直在使用 NSDateComponenents.week = 1 并将其添加到 NSDate,使用 NSCalenda
我不太确定为什么我的代码给出 52 作为答案:weekofyear("01/JAN/2017") . 有没有人对此有可能的解释?有一个更好的方法吗? from pyspark.sql import S
static void Job5(Args _args) { int i; System.DateTime netDttm; System.Int32 intne
是否可以使用 Java lib JODA Time 从 创建日期 年份 一年中的第几周(1 到 52 或 53,视情况而定) 星期几(1 到 7)? Java 有一个 Calendar 函数可以计算它
只是想知道是否有人可以阐明为什么会出现以下查询(注意:今天的日期是 2018 年 5 月 1 日) SELECT WEEKOFYEAR(NOW()); 给出的结果是 18。 但是查询:SELECT W
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我是一名优秀的程序员,十分优秀!