我有一个类似于此的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/