当前位置: 首页 > 面试题库 >

SQL计数和组

景承教
2023-03-14
问题内容

我有一个类似于此的MySQL-db表:

id  date        class   more_info_one   more_info_two   etc
1   2017-05-03  1       鈥�               鈥�               鈥�
2   2017-05-03  3       鈥�               鈥�               鈥�
3   2017-05-11  1       鈥�               鈥�               鈥�
4   2017-05-05  1       鈥�               鈥�               鈥�
5   2017-05-12  2       鈥�               鈥�               鈥�
6   2017-05-05  1       鈥�               鈥�               鈥�
7   2017-05-04  2       鈥�               鈥�               鈥�
8   2017-05-06  3       鈥�               鈥�               鈥�
9   2017-05-12  3       鈥�               鈥�               鈥�
10  2017-05-07  2       鈥�               鈥�               鈥�
11  2017-05-09  1       鈥�               鈥�               鈥�
12  2017-05-09  3       鈥�               鈥�               鈥�
13  2017-05-11  1       鈥�               鈥�               鈥�
14  2017-05-09  1       鈥�               鈥�               鈥�
15  2017-05-04  2       鈥�               鈥�               鈥�
16  2017-05-10  1       鈥�               鈥�               鈥�
17  2017-05-03  2       鈥�               鈥�               鈥�
18  2017-05-12  3       鈥�               鈥�               鈥�
19  2017-05-12  3       鈥�               鈥�               鈥�
20  2017-05-06  2       鈥�               鈥�               鈥�
21  2017-05-03  1       鈥�               鈥�               鈥�
22  2017-05-09  3       鈥�               鈥�               鈥�
23  2017-05-06  1       鈥�               鈥�               鈥�
24  2017-05-08  1       鈥�               鈥�               鈥�
25  2017-05-11  2       鈥�               鈥�               鈥�
26  2017-05-03  1       鈥�               鈥�               鈥�
27  2017-05-09  2       鈥�               鈥�               鈥�
28  2017-05-06  3       鈥�               鈥�               鈥�
29  2017-05-12  3       鈥�               鈥�               鈥�
30  2017-05-06  2       鈥�               鈥�               鈥�
31  2017-05-07  1       鈥�               鈥�               鈥�
32  2017-05-11  3       鈥�               鈥�               鈥�
33  2017-05-07  1       鈥�               鈥�               鈥�
34  2017-05-06  1       鈥�               鈥�               鈥�
35  2017-05-08  2       鈥�               鈥�               鈥�
36  2017-05-11  1       鈥�               鈥�               鈥�
37  2017-05-12  2       鈥�               鈥�               鈥�
38  2017-05-06  3       鈥�               鈥�               鈥�
39  2017-05-05  3       鈥�               鈥�               鈥�
40  2017-05-07  2       鈥�               鈥�               鈥�

我想查找每个日期每个班级有多少人,所以我得到以下结果:

date        class_one   class_two   class_three
2017-05-03  3           1           1
2017-05-04  0           2           0
2017-05-05  2           0           3
2017-05-06  2           2           3
2017-05-07  2           2           0
2017-05-08  1           1           0
2017-05-09  2           1           2
2017-05-10  1           0           0
2017-05-11  3           1           1
2017-05-12  0           2           4

如何使用SQL做到这一点?我想我需要计算,分组,也许还需要一些加入,但是我不知道该怎么做。


问题答案:

您可以使用条件聚合:

select date, sum(class = 1) as class_1, sum(class = 2) as class_2,
       sum(class = 3) as class_3
from t
group by date
order by date;

这在MySQL中使用了一种简写形式,该形式将布尔表达式视为整数。sum()以上每个都等同于sum(case when class = 1 then 1 else 0 end)



 类似资料:
  • 问题内容: 为什么不能在SQL中使用?如要计算所有不同的行? 问题答案: 尽管我强烈建议您重新考虑使用的任何查询。在大多数情况下,更合适(更快)。 编辑: 阅读问题注释后,我应该指出,您 绝不 应该要求DBMS做比实际需要做的更多的工作来获得结果。如果您事先知道表中没有任何重复的行,请不要使用。

  • 问题内容: 我有一张销售数据的SQL表(如下面的表),如何生成内联小计的结果集,理想情况下按收入最高的客户的降序对结果进行排序? 因此,给出如下表: 我会得到以下结果: 到目前为止,我可以提供以下查询: 但是,查询使用“ ZZZZ”而不是“总计”(此后可以通过查找和替换来固定),但是查询没有按金额顺序排序。 编辑 :请随时发布不涉及排序的答案。实际上,一些答案对我很有帮助。 问题答案: 看看像

  • 问题内容: 我正在尝试转换此查询(已经可以使用) 对于Linq to SQL,但我不知道自己在做什么错。看我的尝试 我只需要对建筑物进行分组并计算每个建筑物有多少用户。 问题答案: 只需使用以下方法:

  • 我尝试了一些具有分析功能的示例,并创建了一个sql fiddle来理解分区上的count distinct by Clause,这就是我的SQLFiddle。 如果查看结果集,我会认为第三行的valcount为1,但它是2,不确定为什么会这样。

  • 问题内容: 我正在寻找一种方法来计算等于组的最小或最大项目数。我每隔几天收到一次商品,每两周输入一次。我需要查看每个EntryDate的最小值和最大值ReceivedDate,以及最小值和最大值处的项目计数。在MS Access中使用SQL。 输入 当前查询 电流输出 期望的输出 问题答案: 我不知道MS Access是否允许这样的子查询。如果这不起作用,请让我知道,我将删除答案。否则:

  • 问题内容: 好的,我遇到了问题。我似乎无法在PHP中成功回显SQL Count。 SQL: PHP: 我已经尝试了两种在网上找到的不同方法(上述)。我什至尝试使用“ mysql_fetch_array($result,MYSQL_ASSOC)”,而不只是mysql_fetch_array($ result)。 每次,我都会收到相同的错误消息: /home/semsemx1/public_html/