数据库中查询不同性别人数时出现的问题

| 查询男女人数问题|

在做实验时发现“查询男女生数量”这个问题并不像一开始想的那么简单。

尝试一:

然而这样的查询会出现无法知道哪个数量是男哪个数量是女。虽然是正序排列,也就是对”男”,”女”进行比较,比较得出的是”男”

如图:

尝试二:

于是想到输出两列,第一列输出男性的数量,第二列输出女性的数量。

女性数量的输出则靠数出全部人数后减去男性人数。

而这样出现的结果男性为正常的,而则为58,而不是总人数68.因为这是由控制了整个查询语句的条件,筛选出了所有的数据后再进行。

尝试三:

出现这样的错误后首先想到的是嵌套查询,通过来使得为男性的,而还是为总人数。

这样查询的结果便一个也没有了。

尝试四:

换个思路是先查询出男生的人数并建立表,然后左连接到另一个表,表为查询出女生人数后建立的表。

查询语句中,后面为为的是他们必然连接,因为新建的表中没有可以连接的相同的数据了。

这样确实能查询出来,但是这样的查询次数需要两次,如果需要查询的东西多的话那么查询次数便会很庞大。

尝试五:

在查询COUNT函数文档后,发现聚集函数语法为:

其中的为任意类型(“”、“”或“”除外)的表达式。而既然可以使用任意表达式,想到在里面设立一个条件,在聚集函数内进行筛选查询,不用整体语句来进行条件控制。查询后发现在聚集函数内插入条件则需使用"·········"这样的规则。

于是就可以有两种写法:

这样在聚集函数内限制条件后查询次数只需一次,大大提升了效率。

| 文末 |

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181123G1JQAV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券