当前位置: 首页 > 面试题库 >

从MySQL表的同一列中获取计数?

班承德
2023-03-14
问题内容

我想对同一字段进行计数以获得不同的值,例如:

用户{user_id,性别}

性别显然可以是男性或女性:)

我想获得所有男性和女性的计数,即

COUNT(male)   COUNT(female)  
   4               16

但我很困惑,因为他们来自同样的gender coloumn感谢


问题答案:

尝试以下操作以获得明智的结果:

SELECT gender, COUNT(User_id) AS count
FROM User
GROUP BY gender;

输出:

| gender | count |
|--------|-------|
|      F |     4 |
|      M |     2 |

尝试以下操作以获得总计的行明智结果:

SELECT  (IFNull(gender,'Total')) AS gender,
COUNT(User_id) AS Count
FROM User
GROUP BY gender
WITH rollup;

输出:

| gender | Count |
|--------|-------|
|      F |     4 |
|      M |     2 |
|  Total |     6 |

尝试此操作以获得列明智的结果:

SELECT
  COUNT(CASE WHEN gender = 'M' THEN User_id END) AS males,
  COUNT(CASE WHEN gender = 'F' THEN User_id END) AS females,
  COUNT(*) AS Total
FROM User;

输出:

| males | females | Total |
|-------|---------|-------|
|     2 |       4 |     6 |

看到这个SQLFiddle



 类似资料:
  • 本文向大家介绍MySQL从一列值列表中仅获取浮点数,包括了MySQL从一列值列表中仅获取浮点数的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是从列表中获取浮点数的查询- 这将产生以下输出-

  • 问题内容: 我有一个看起来像这样的列表列表: 删除重复列表的最佳方法是什么?使用上面的示例,我正在寻找会产生这种情况的代码: 我最初以为我可以使用,但这似乎不适用于列表列表。我还看到了一个使用的示例,但是代码对我来说并不完全清楚。谢谢您的帮助! 问题答案: uniq_animal_groups = set(map(tuple, animal_groups)) 尽管您将得到一组元组而不是一组列表,但

  • 问题内容: 我有一个表 的学生 这样 我想获取所有记录,但不应重复邮政编码。因此,在上述表记录的情况下,应获取记录1和2。将不会提取第3条记录,因为它的邮政编码已在第1条记录中。 问题答案: 以下查询将仅选择不同的“ zip”字段。 以下查询将选择所有字段以及不同的zip字段。

  • 问题内容: 我有三个表,其中两个是主表,另一个是map。它们在下面给出。 tbl_Category,具有列ID(PK)和名称 / * / tbl_SubCategory Id SubCategoryName CategoryId (FK, PK of above) 2 Badges, Emblems, Ribbons & Allied 2 3 Barcodes, Stickers & Labels

  • 本文向大家介绍获取不同的值并在MySQL中计数,包括了获取不同的值并在MySQL中计数的使用技巧和注意事项,需要的朋友参考一下 要获取不同的值并计算它们,可以使用GROUP BY子句。 语法如下 为了理解上述语法,让我们创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 输出如下 现在,让我们获取不同的值并使用以下查

  • 问题内容: 我想从以下列表中获取唯一值: 我需要的输出是: 此代码有效: 我应该使用更好的解决方案吗? 问题答案: 首先正确声明你的列表,以逗号分隔。你可以通过将列表转换为一组来获得唯一值。 如果进一步将其用作列表,则应执行以下操作将其转换回列表: 另一种可能(可能更快)的可能性是从头开始使用集合而不是列表。然后你的代码应为: 正如已经指出的那样,集合不保持原始顺序。如果需要,则应查找有序集合实现