| 查询男女人数问题|
在做实验时发现“查询男女生数量”这个问题并不像一开始想的那么简单。
尝试一:
然而这样的查询会出现无法知道哪个数量是男哪个数量是女。虽然是正序排列,也就是对”男”,”女”进行比较,比较得出的是”男”
如图:
尝试二:
于是想到输出两列,第一列输出男性的数量,第二列输出女性的数量。
女性数量的输出则靠数出全部人数后减去男性人数。
而这样出现的结果男性为正常的,而则为58,而不是总人数68.因为这是由控制了整个查询语句的条件,筛选出了所有的数据后再进行。
尝试三:
出现这样的错误后首先想到的是嵌套查询,通过来使得为男性的,而还是为总人数。
这样查询的结果便一个也没有了。
尝试四:
换个思路是先查询出男生的人数并建立表,然后左连接到另一个表,表为查询出女生人数后建立的表。
查询语句中,后面为为的是他们必然连接,因为新建的表中没有可以连接的相同的数据了。
这样确实能查询出来,但是这样的查询次数需要两次,如果需要查询的东西多的话那么查询次数便会很庞大。
尝试五:
在查询COUNT函数文档后,发现聚集函数语法为:
其中的为任意类型(“”、“”或“”除外)的表达式。而既然可以使用任意表达式,想到在里面设立一个条件,在聚集函数内进行筛选查询,不用整体语句来进行条件控制。查询后发现在聚集函数内插入条件则需使用"·········"这样的规则。
于是就可以有两种写法:
这样在聚集函数内限制条件后查询次数只需一次,大大提升了效率。
| 文末 |
领取专属 10元无门槛券
私享最新 技术干货