当前位置: 首页 > 编程笔记 >

获取不同的值并在MySQL中计数

苏凯
2023-03-14
本文向大家介绍获取不同的值并在MySQL中计数,包括了获取不同的值并在MySQL中计数的使用技巧和注意事项,需要的朋友参考一下

要获取不同的值并计算它们,可以使用GROUP BY子句。

语法如下

select yourColumnName,count(*) as anyAliasName from yourTableName group by yourColumnName;

为了理解上述语法,让我们创建一个表。创建表的查询如下

mysql> create table GroupByAndCountDemo
   -> (
   -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> ClientName varchar(100)
   -> );

使用insert命令在表中插入一些记录。查询如下-

mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('Carol');
mysql> insert into GroupByAndCountDemo(ClientName) values('Sam');
mysql> insert into GroupByAndCountDemo(ClientName) values('Sam');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('Sam');
mysql> insert into GroupByAndCountDemo(ClientName) values('Sam');
mysql> insert into GroupByAndCountDemo(ClientName) values('Sam');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('John');
mysql> insert into GroupByAndCountDemo(ClientName) values('David');
mysql> insert into GroupByAndCountDemo(ClientName) values('Maxwell');
mysql> insert into GroupByAndCountDemo(ClientName) values('Maxwell');

使用select语句显示表中的所有记录。查询如下-

mysql> select *from GroupByAndCountDemo;

输出如下

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|        1 | John       |
|        2 | Carol      |
|        3 | Sam        |
|        4 | Sam        |
|        5 | John       |
|        6 | John       |
|        7 | John       | 
|        8 | Sam        |
|        9 | Sam        |
|       10 | Sam        |
|       11 | John       |
|       12 | John       |
|       13 | John       |
|       14 | David      |
|       15 | Maxwell    |
|       16 | Maxwell    |
+----------+------------+
16 rows in set (0.00 sec)

现在,让我们获取不同的值并使用以下查询对它们进行计数

mysql> select ClientName,count(*) as TotalCount from GroupByAndCountDemo group by ClientName;

以下是输出

+------------+------------+
| ClientName | TotalCount |
+------------+------------+
| John       |          7 |
| Carol      |          1 |
| Sam        |          5 |
| David      |          1 |
| Maxwell    |          2 |
+------------+------------+
5 rows in set (0.00 sec)
 类似资料:
  • 问题内容: 表格Jobs有2列JobId,保存工作位置时的城市可能是多个城市,如下所示 我想如何在类似城市的城市中计算Jobid想要在纽约市中计算Jobid的结果 纽约3俄亥俄州1弗吉尼亚2 问题答案: 为了获得用逗号分隔的不同值的计数,可以在查询之上运行,但是要获得正确的结果,您应该再使用一个表,该表只有一个列num整数类型,并插入一些值。如果在此情况下在GROUP_CONCAT(城市分隔符’,

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我有一个表user_places像这样: 我正在尝试获取用户的最新recorded_date和他最常访问的地点的名称。 问题答案: 如果数据不是太大,则可以在MySQL中使用此技巧:

  • 我试图在Grafana中创建一个表格/图表,显示在给定时间范围内(例如过去24小时)登录到给定应用程序的唯一用户总数。我有一个指标,,它记录每分钟命中特定路径的请求数量: 这给了我以下信息: 现在我想计算唯一用户名的数量,因此我运行: 我得到: 我错过了什么/我做错了什么?理想情况下,我希望获得一个标量值,该值显示在过去24小时内登录的唯一用户名的总数。 非常感谢。

  • 问题内容: 我想对同一字段进行计数以获得不同的值,例如: 用户{user_id,性别} 性别显然可以是男性或女性:) 我想获得所有男性和女性的计数,即 但我很困惑,因为他们来自同样的感谢 问题答案: 尝试以下操作以获得明智的结果: 输出: 尝试以下操作以获得总计的行明智结果: 输出: 尝试此操作以获得列明智的结果: 输出: 看到这个SQLFiddle

  • 问题内容: 我有一个名为“ posts”的SQL表,如下所示: 每个类别编号对应一个类别。我将如何计算每个类别在 一个sql查询中 全部出现在帖子中的次数? 例如,这样的查询可能返回如下符号数组: 我当前的方法是对每个可能的类别使用查询,例如:,然后将返回值组合到最终数组中。但是,我正在寻找一种仅使用一个查询的解决方案。 问题答案:

  • 问题内容: 比较mysql中逗号分隔的值,并在countcolumn中获取匹配的输出 例子: 通过比较ID 1和2,输出应为1 通过比较ID 2和3,输出应为1 通过比较ID 3和1,输出应为2 问题答案: 首先,您列出的数据实际上应该以一种格式存储,数据库的每一行都存储一个和一个,即3元素列表将对应3行。如果对您的结构进行了更改,则以下答案将是有意义的。 就目前而言,这是我整合的一个不错的MyS