我正在尝试使用Jquery Highcharts插件创建可视化图表。
但是我无法编写查询来创建插入JS所需的数据。
我需要做的是向客户展示有多少独立访客点击了他的招聘广告。 你可以看到我想要做的最终输出;
这是必需的JS的一部分;
xAxis: {
categories: ['01.05', '02.05', '03.05', '04.05', '05.05',
'06.05', '07.05','08.05']
},
series: [{
name: 'Unique',
data: [12,8,9,10,5,4,11,30]
}]
包含统计数据的表格;
Job_Ad_Statistics
-----------------
jobID, jobstat_Date, job_statUnique
1 07.05.2011 0
1 07.05.2011 1
1 07.05.2011 1
2 06.05.2011 1
3 06.05.2011 1
1 05.05.2011 1
1 04.05.2011 1
*Currently, table has 20k rows.
我需要获得多个Count,其中job_statUnique = 1且jobstat_Date介于现在和之前的7天之间,以便将数据插入到Series字段中。
Expected Result:
----------------
Day Unique_ViewCount_of_jobID (Assuming ID 1)
.... start from 7 days earlier
02.05 0
03.05 0
04.05 1
05.05 1
06.05 0
07.05 2
08.05 0 - today
感谢您的帮助。
答案 0 :(得分:4)
如果有人需要答案,我就是这样解决的;
;WITH Date_Range_T(d_range) AS
(
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 6, 0)
UNION ALL SELECT DATEADD(DAY, 1, d_range)
FROM Date_Range_T
WHERE DATEADD(DAY, 1, d_range) < GETDATE()
)
SELECT d_range, COUNT(job_statID) as total
FROM Date_Range_T
LEFT JOIN Jobs_Stats on (job_stat_Date=d_range)
GROUP BY d_range ORDER BY d_range ASC
注意: job_stat_Date必须是Date not DateTime
答案 1 :(得分:0)
我对你想要的数据看起来有点不清楚,但尝试这样的事情:
SELECT jobID, COUNT(jobID)
FROM Job_Ad_Statistics
WHERE jobstat_Date BETWEEN GETDATE() AND DATEADD(day, -7, GETDATE())
GROUP BY JobID
如果您只想要计数,可以从选择中删除JobID:
SELECT COUNT(jobID)
FROM Job_Ad_Statistics
WHERE jobstat_Date BETWEEN GETDATE() AND DATEADD(day, -7, GETDATE())
GROUP BY JobID