我正在努力实现以下目标:
我有一个包含这样数据的表:
INSERT INTO `control_leads` (`LeadID`, `Type`, `Business`, `Date`, `Multiplier`, `UserID`)
VALUES
(1026, 'Bags', 'AB', '2017-01-18', 1, 11),
(1030, 'Ice Scraper', 'AB', '2017-01-18', 1, 8),
(1029, 'Drawstring ', 'AB', '2017-01-18', 1, 8),
(1028, 'Umbrellas', 'AB', '2017-01-18', 1, 11),
(1027, 'Lanyards', 'LP', '2017-01-18', 2, 11),
(1025, 'Bags', 'AB', '2017-01-18', 2, 8),
(1031, 'Lanyards', 'LP', '2017-01-18', 2, 8),
(1018, 'Lanyards', 'LP', '2017-01-17', 1, 8),
(1017, 'Bags', 'AB', '2017-01-17', 1, 8),
(1023, 'Hand Warmer', 'AB', '2017-01-17', 1, 8),
(1020, 'Lanyards', 'LP', '2017-01-17', 2, 11),
(1021, 'Pens', 'AB', '2017-01-17', 1, 11),
(1022, 'Bags', 'AB', '2017-01-17', 1, 8),
(1024, 'Headphones', 'AB', '2017-01-17', 1, 11),
(1007, 'Balls', 'AB', '2017-01-16', 1, 8),
(1008, 'Lanyards', 'LP', '2017-01-16', 2, 8),
(1009, 'Mugs', 'AB', '2017-01-16', 1, 11),
(1010, 'Bags', 'AB', '2017-01-16', 1, 8),
(1011, 'Bags', 'AB', '2017-01-16', 1, 11),
(1013, 'Phone/Table', 'AB', '2017-01-16', 1, 8),
(1015, 'Pens', 'AB', '2017-01-16', 1, 11),
(1016, 'Selfie Stic', 'AB', '2017-01-16', 1, 8);
这是我的 sql 查询:
SELECT IFNULL( SUM(Multiplier), 0) AS val, control_leads.Date AS date
FROM control_leads
WHERE Date > '2017-01-04'
GROUP BY control_leads.Date
ORDER BY date ASC
结果:
10 2017-01-05
6 2017-01-06
8 2017-01-09
14 2017-01-10
9 2017-01-11
14 2017-01-12
10 2017-01-13
10 2017-01-16
8 2017-01-17
10 2017-01-18
但我试图获得这周的值,但也包括上周的比较
像这样:
val1 week1 val2 week2
10 2017-01-05 14 2017-01-12
6 2017-01-06 10 2017-01-1
8 2017-01-09 10 2017-01-16
14 2017-01-10 8 2017-01-17
9 2017-01-11 10 2017-01-18
编辑:
我没有解释的很好,想按day分组,和当天lastweek的值比较。
val1 week1 val2 week2
day1 10 2017-01-05 14 2017-01-12
day2 6 2017-01-06 10 2017-01-1
day3 8 2017-01-09 10 2017-01-16
day4 14 2017-01-10 8 2017-01-17
day5 9 2017-01-11 10 2017-01-18
最佳答案
这应该可以与上周相比,按天计算
SELECT
cl.date
, sum(cl.multiplier) val
, cl2.date last_week
, ifnull(cl2.last_week_val,0) last_week_val
, sum(cl.multiplier) - ifnull(cl2.last_week_val,0) diff
FROM control_leads cl
LEFT JOIN (select t.date, sum(t.multiplier) last_week_val from control_leads t group by t.date) cl2
ON (cl2.date = cl.date-7)
GROUP BY date
ORDER BY date;
关于MySQL 按第一周值分组,同时包括第二周值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723227/
在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
假设我有一个在Ruby中看起来像这样的哈希:{:ie0=>"Hi",:ex0=>"Hey",:eg0=>"Howdy",:ie1=>"Hello",:ex1=>"Greetings",:eg1=>"Goodday"}有什么好的方法可以将它变成如下内容:{"0"=>{"ie"=>"Hi","ex"=>"Hey","eg"=>"Howdy"},"1"=>{"ie"=>"Hello","ex"=>"Greetings","eg"=>"Goodday"}} 最佳答案 您要求一个好的方法来做到这一点,所以答案是:一种您或同事可以在六个月后理解
我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|
我想编写一个ruby脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
我已经有很多两个值数组,例如下面的例子ary=[[1,2],[2,3],[1,3],[4,5],[5,6],[4,7],[7,8],[4,8]]我想把它们分组到[1,2,3],[4,5],[5,6],[4,7,8]因为意思是1和2有关系,2和3有关系,1和3有关系,所以1,2,3都有关系我如何通过ruby库或任何算法来做到这一点? 最佳答案 这是基本Bron–Kerboschalgorithm的Ruby实现:classGraphdefinitialize(edges)@edges=edgesenddeffind_maximum_
如果至少有两个相邻的数字相同,格式为,我需要打包.这是我的输入:[2,2,2,3,4,3,3,2,4,4,5]以及预期的输出:"2:3,3,4,3:2,2,4:2,5"到目前为止我试过:a=[1,1,1,2,2,3,2,3,4,4,5]a.each_cons(2).any?do|s,t|ifs==t如果相等,也许可以尝试计数器,但那是行不通的。 最佳答案 您可以使用Enumerable#chunk_while(如果你使用的是Ruby>=2.3):a.chunk_while{|a,b|a==b}.flat_map{|chunk|chu