我的雇主表中有这样的数据。
+--------------+--------+
| 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/