我的数据看起来像这样(示例):
A 栏 | B 栏 | C 座 |
---|---|---|
值1 | 值2 | 1/4/24 下午 4:15 |
值3 | 价值4 | 1/4/24 下午6:30 |
值5 | 值6 | 1/5/24 2:30 下午 |
价值7 | 价值8 | 1/5/24 下午3:30 |
价值9 | 值10 | 1/5/24 5:30 下午 |
我正在尝试做一些在正确的 SQL 中应该非常简单的事情:“对于表中的每个 date
Col C
,而不是 date/time,查找之间经过的小时数,包括小数小时数该日期最早和最晚的事件。” Col A
和 Col B
中的值不相关。
最终结果是我希望它回来,或者类似的东西(在这里评论只是为了可读性):
日期 | 时间 | 评论 |
---|---|---|
1/4/24 | 2.25 | 下午 6:30 - 下午 4:15 |
1/5/24 | 3 | 5:30pm - 2:30pm,因为 3:30pm 不是最短或最长 |
在 SQL 中,我猜查询会像这样,带有一些伪代码:
SELECT
number_of_hours(MAX(col_c) - MIN(col_c))
FROM
my_table
GROUP BY
DATE(col_c)
我不知道如何在 Google 表格中执行此操作。鉴于我认为这个问题更像是数据库问题,而不是电子表格中的问题,我尝试了
QUERY
函数,但我所做的一切最终都以无效查询告终。我认为 Google 表格不允许您提取日期/时间的日期部分并将其聚合。
我尝试过但失败的事情:
=query(A:C, "SELECT A, B, C, " & TEXT(C, "yyyy-mm-dd"), 1)
:公式解析错误=query(A:C, "SELECT A, B, C, " & DATE(C), 1)
:公式解析错误=query(A:C, "SELECT C, COUNT(B) GROUP BY " & DATE(C), 1)
:公式解析错误=query(A:C, "SELECT C, COUNT(B) GROUP BY DATE(C)", 1)
:无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 33 列遇到“”(“”(“”=query(A:C, "SELECT C, DATE '" & YEAR(C) & "-" & (MONTH(C) + 1) & "-" & DAY(C) & "'", 1)
:公式解析错误=query(A:C, "SELECT C, " & DATEVALUE(YEAR(C) & "-" & (MONTH(C) + 1) & "-" & DAY(C)), 1)
:公式解析错误=query(A:C, "SELECT C, DATE(YEAR(C), MONTH(C), DAY(C))", 1)
:无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 15 列遇到“”(“”(“”那么我该如何去做呢?
您可以使用:
=SORT(LET(
c,TOCOL(C2:C,1),
d,TEXT(c,"m/d/yy"),
MAP(UNIQUE(d),LAMBDA(u,LET(
f,FILTER(c,d=u)*24,
{u,MAX(f)-MIN(f)})))))