mysql - 选择具有自定义条件的数据

标签 mysql select count group-by

我的雇主表中有这样的数据。

+--------------+--------+
| BANDINDIVIDU | GENDER |
+--------------+--------+
| I            | M      |
| I            | F      |
| I            | M      |
| I            | M      |
| I            | F      |
| I            | M      |
| II           | M      |
| II           | M      |
| II           | M      |
+--------------+--------+

我尝试根据 BANDINDIVIDU 列对数据进行计数,因此数据将如下所示..

+--------------+--------+--------------+
| BANDINDIVIDU | GENDER |COUNT(GENDER) |
+--------------+--------+--------------+
| I            | M      | 4            |
| I            | F      | 2            |
| II           | M      | 3            |
| II           | F      | 0            |
+--------------+--------+--------------+

我使用此 SQL 按 BANDINDIVIDU 和 GENDER 对数据进行分组

SELECT BANDINDIVIDU, GENDER from employer GROUP BY BANDINDIVIDU, GENDER;

但是我得到了这个结果。

+--------------+--------+--------------+
| BANDINDIVIDU | GENDER |COUNT(GENDER) |
+--------------+--------+--------------+
| I            | M      | 4            |
| I            | F      | 2            |
| II           | M      | 3            |
+--------------+--------+--------------+

M GENDER 的 BANDINDIVIDU 数据未显示。 我已经尝试使用右连接,但数据结果仍然错误。 我正在使用 mysql,提前致谢。

最佳答案

这些结果在技术上是正确的。数据库只能使用它们提供的数据。当没有数据作为基础时,尝试将“II”和“F”分组在一起是基于模式,而不是基于数据。

我的建议是创建一个专门用于查找模式的查询,例如“M”和“F”。像这样:

SELECT DISTINCT GENDER FROM employer

请注意,纯粹在 SQL 中设置模式可能会导致查询过于复杂。如果可以的话,我强烈建议您使用某种编码来完成模式工作,并使用 SQL 来进行数据检索。

关于mysql - 选择具有自定义条件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24567349/

相关文章:

android - 相关对象中带有 LIKE 子句的 GreenDao 查询

mysql - 检查带有 LIMIT 的 SELECT 语句是否返回所有行

php - 使用 COUNT、GROUP BY、ORDER BY MAX 过滤日志文件

search - REDIS 哈希 HMSET 中的 COUNT 和 SEARCH

objective-c - 获取 NSArray 长度/计数 - Objective C

php - 条形码无法读取mysql中的行

mysql - 如何在 MySQL 中移动整行

C - 如何将 select() 与多个管道一起使用?

php - 评论框 PHP MySQL

mysql - 为什么 INSERT 不能在带有 Wamp Server 的 Windows 中与 InnoDB 一起使用?