我有一张有列DateTime的桌子。我想把这个按周分组。按日期或月份分组没有问题。但如何按周分组呢?
我需要这样的东西。in应该与IQueryable一起工作。
var peoplePerWeeks = await context.People
.GroupBy(x => x.Date.StartOfWeek)
.Select(x => new { Date = x.key, Number = x.Count()})
表模式如下所示:
Column | Type | Modifiers
--------+--------------------------+--------------------------------------------------
time | timestamp with time zone | default now()
时间格式如下:
time
------------------------
2016-07-1
我有一个不同寻常的问题。我使用Python将一些数据写入一个文本文件,然后使用Tableau读取该文件并构建可视化效果。我按周对查询结果进行分组,以减小输出文件的大小。我认为对于这种类型的操作,SQL是相当标准的。
SELECT [Date] - EXTRACT(DOW FROM [Date]) + 1
[this gives me the Sunday of the week for any date]
但是,我偶尔会希望按月而不是按周进行分组,这在当前的输出中是不可能的。我想要的是对查询的修改,它将按周分组,除非一周重叠两个月。如果一周重叠两个月,它会将结果分为第一个月的第一个星期的前半部
我有一个date列,我试图查询它,只返回每月最大的日期。
我目前拥有的,尽管非常简单,返回99%的我正在寻找的东西。例如,如果我按升序列出列,则第一个条目是2016-10-17,范围可达2017-10-06。
有一点要注意的是,每个月的最后一天可能不在数据中,所以我实际上只是想撤回任何现有月份的“最大”日期。
我目前正在运行的查询看起来就像
SELECT MAX(date_col)
FROM schema_name.table_name
WHERE <condition1>
AND <condition2>
GROUP BY EXTRACT (MONTH
我有一个查询(针对BigQuery),在该查询中,我希望计数按周计算的记录,保持sqlcode动态的日期。对每日记录的查询如下:
select o.date as order_date, count(distinct(customer_id)) as WAU
from xyz.orders o
where o.date = current_date() and o.refund =0 and o.parent_order_id is null and o.status=1
group by o.date
o.refund、o.parent_order_id和o.status是过滤器。
我使用这个查询来获取数据
SELECT
(count( server_time::timestamp::date)) ,
server_time::timestamp::date
FROM
complaint_details_v2
WHERE
server_time between '2018/10/03' and '2018/10/11'
GROUP BY
server_time::timestamp::date
ORDER BY
server_time ASC
但是我想改变上面的
我试图通过按周数分组来显示sql查询,并显示周结束,而不是一周开始,但到目前为止,实现这一目标是徒劳的。我该怎么做?
select extract(week from actual_sale_date) as week_number,
to_char(date_trunc('week', actual_sale_date) as date, 'MM/dd/yyyy'), count(*)
from data
where project_id = 'ABC'
and actual_sale_date >= date_trunc('y
我正在尝试弄清楚是否可以按日期分组数据,从某个日期的特定时间到下一个日期的某个时间。我在Postgresql数据库中有一个bills表,表中有以下列:
id serial NOT NULL,
bill_amount double precision,
tax_amount double precision,
discount double precision,
grand_total double precision,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone
给出这样一张桌子:
日志:
id, user_id, points, created_at
有了Rails,我如何通过user_id查询数据库,然后通过created_at按周分组,这样我就可以得到如下内容:
WEEK of X/XX/XXXX - 3011 total points
WEEK of X/XX/XXXX - 320 total points
WEEK of X/XX/XXXX - 31 total points
WEEK of X/XX/XXXX - 30330 total points
谢谢
我正在尝试按日期对数据进行排序,尽管该脚本只有周的数据。 下面给出了一个示例SQL: SELECT
CONCAT(CONCAT('Week', ''),
EXTRACT(WEEK FROM sale_date ::date + '1 day'::interval)
),
COUNT(*)
FROM sales
WHERE sale_date between '2018-12-29' AND '2019-01-04'
GROUP BY CONCAT(CONCAT('
我正在尝试编写一个返回周日历的查询,但是周结束必须基于日期参数是动态的,下面是代码
SELECT *, PARSE_DATE('%Y%m%d', @DS_END_DATE) as cutoff,
CASE
WHEN FORMAT_DATE('%A',PARSE_DATE('%Y%m%d', @DS_END_DATE)) ="Monday" THEN DATE_TRUNC(date, WEEK(Monday))
WHEN FORMAT_DATE('%A',PARSE_DATE('%Y%m%d&
简单地说,我有一个如下所示的交易表
我试图用最后7天(day by day)、持续4周(week by week)和持续12个月(month by month)来查询这个表。
我将使用javascript获取日期,通过事务查询事务,然后在外部执行每一个(周、日、月)的和,然后创建一个数组来保存这些值。但我的勇气告诉我,使用postgres查询可以获得其中的大部分内容。
所以我的问题是,如果是的话,有没有可能。
这是我想要的约会
const today = new Date();
const firstWeekEnd = new Date(today);
const secondWeekS
我正在尝试运行此查询,但得到SQL编译错误: CAST(OV.TOTAL_VALUE AS NUMBER(25,5))不是有效的group by表达式
SELECT date_trunc('week', CREATED_AT) as WEEK, SUB_GROUP, AVG(TOTAL_VALUE) as AOV_VERTICAL, AVG(TOTAL_VALUE) OVER (PARTITION BY date_trunc('week', CREATED_AT))
FROM OV
GROUP BY 1,2
我有一个表包含一个日期,一个子组和一个总值,我想要一个
如何找出事件日期已知的周的开始日期和结束日期。
DATEADD(dd, -(DATEPART(dw, eventDate)-1), eventDate) [WeekStart]
DATEADD(dd, 7-(DATEPART(dw, eventDate)), eventDate) [WeekEnd]
我尝试过这种方法,但是它给出了错误
ERROR: function datepart(unknown, timestamp without time zone) does not exist
LINE 3: DATEADD('dd', -(DATEPART('
我正试着为每个月得到一组平均值。我只使用DATE_TRUNC将日期时间转换为月份、年份,但仍然无法获得不同的日期。似乎完全忽略了这一点。
我只想要6行,在范围内每个月一行,但我得到1000 s。
SELECT DISTINCT(date_trunc('month', event_logs.start_at)) AS start_at,
AVG(event_logs.head_count) as head_count FROM "event_logs"
WHERE ("event_logs"."state" IN ('c
可能重复:
我希望在PostgreSQL中每隔5分钟聚合一次数据。如果我使用date_trunc()函数,我可以按小时、月、日、周等时间来聚合数据,但不能像5分钟或5天这样的特定间隔。
select date_trunc('hour', date1), count(*) from table1 group by 1;
我们如何在PostgreSQL中实现这一点?
目前,我有一个相当大的查询,其工作方式是
通过获取按事件名称和日期分组的事件的count(),将每日、每周和每月的计数汇总到中间表中。
在每个中间表上选择avg计数,方法是按just事件执行avg()组,对结果进行合并,因为我希望有一个单独的列,用于日、周、月,将填充值0放入空列中。
然后我对所有的列进行求和,而0基本上是一个不操作,这给了我每个事件的一个值。
但是这个查询相当大,我觉得我做了很多重复的工作。是否有任何方法可以更好地执行此查询或使其更小?我以前没有做过这样的查询,所以我不太确定。
WITH monthly_counts as (
SELECT
有没有办法把放映日期改为每周的末尾而不是周初。
下面是我的代码:
SELECT date_trunc('week', day + '1 day'::interval)::date - '1 day'::interval AS anchor, AVG(value) AS average
FROM daily_metrics
WHERE metric = 'daily-active-users'
GROUP BY anchor
ORDER BY anchor
结果如下:
我想要实现的是2018-03-03 (自定义周的结束)而
我想要显示从筛选器中选择的日期范围的打开和关闭计数。数据将按组织产品、月和周进行分组。但问题是,当我计算开盘周和收盘周时。Open有单独的列,close有不同的..它可以将它分组到任何一个字段上,就像我想要的那样:
Week Open Close
0 3 5
1 2 0
如果关闭日期不在第2周,则.And打开日期存在于第2周,应如下所示:
Week Open Close
2 3
我正在使用一个数据库,并使用以下查询:
SELECT
evt_block_time,
COUNT(*) filter (
WHERE
uniswap_version = 'v1'
) OVER (
ORDER BY
evt_block_time
) as v1_pairs,
COUNT(*) filter (
WHERE
uniswap_version = 'v2'
) OVER (
ORDER BY
evt_block_time
) as v2_pair
我正在努力改进查询的执行时间。
我必须提取月的最后一天在开始日期和结束日期之间的行。
在我的表格中,数据是按周设置的: 2018-11-11年底-11-17岁,2018-11-18岁,2018-11-24岁等等。
我的查询如下:
select field1, field2,
max(case when '2018-01-31' between start and end then 1 else 0 end) as M1,
max(case when '2018-02-28' between start and end then 1 else 0 end) as
我正在尝试从我的week format表中获取revenue of facilities,而不是获取current week revenue和previous week revenue以及更多的星期。我已经加入了我的所有表,并有所有相关的列来计算收入,但不能获得每一个设施的收入周。 Question: Get facility wise revenue for past 3 weeks. 对于calculate the revenue,我使用了这个公式:revenue = (SalePrice*SKUQuantity) – ((PurchasePrice*SKUQuantity)+(Pur