【问题标题】:Access Query to sum by day and count by hour / minute访问查询按天汇总并按小时/分钟计数
【发布时间】:2021-06-02 15:00:31
【问题描述】:

我正在尝试使用以下数据编写查询。我的挑战是每天,我需要计算“105”出现在 Col A 和“100”出现在 Col B 的次数。我不需要计算每个实例“105”出现,而是每分钟出现“105”出现。 Col B 和 "100" 也是如此

Date           Time      A   B
1/20/2021   1:06:12 AM  105 100
1/20/2021   1:06:16 AM  105 100
1/20/2021   1:06:20 AM  105 100
1/20/2021   2:28:12 AM  105 100
1/20/2021   2:28:16 AM  105 100
1/20/2021   2:28:20 AM  105 100
1/20/2021   3:50:08 AM  105 10
1/20/2021   3:50:12 AM  105 10
1/20/2021   3:50:16 AM  105 10
1/20/2021   5:12:04 AM  105 10
1/20/2021   5:12:08 AM  105 10
1/20/2021   5:12:12 AM  105 10

详情:

Time  A  B
1:06  1  1
2:28  1  1
3:50  1  0
5:12  1  0

查询结果:

Date      A    B
1/21/20   4    2

任何有关如何执行此操作的建议将不胜感激。

【问题讨论】:

  • 列的数据类型有哪些?

标签: sql subquery ms-access-2010 nested-query


【解决方案1】:

一种方法是在每一列上分别使用distinct。然后聚合:

select date, sum(a), sum(b)
from (select distinct date, hour(time) as hh, minute(time) as mm, 1 as a, 0 as b
      from t
      where a = 105
      union all
      select distinct date, hour(time) as hh, minute(time) as mm, 0 as a, 1 as b
      from t
      where b = 100
     ) t
group by date;

【讨论】:

  • @GordonLinoff ......我今天要试试这个。数据类型为日期/时间、日期/时间、数字和数字。感谢您的帮助....
  • @gordonlinoff........这可行,但我只需要在 Col A = 105 时计算 Col B。谢谢...... ...
  • @Shaves 。 . .然后将其添加到where 子句中。您的问题是“Likewise with Col B and "100"”,这意味着您要过滤 B 的值。
  • @gordonlinoff .....谢谢............对不起......我试图先计算 A = 105,然后然后对于所有这些记录,我需要计算 b = 100(每分钟)。每分钟可以有多个匹配项....我试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
相关资源
最近更新 更多