mysql - 如何在mysql表的列中按值添加分组

标签 mysql

我有一个mysql表,如下所示

   **ip                  page                date                 page_Views
127.0.0.1              index.php           2012-07-09              25
182.445.11.1           abc.php             2012-07-09              11
116.142.24.7           index.php           2012-07-09              3 

我想提取按页面分组的 page_views 列

这意味着对于“index.php”,它显示 page_view = 28

我正在使用这个查询

SELECT * FROM stats_tracker GROUP BY page ORDER BY stats_tracker.page_views 降序

使用这个查询,我根据页面对 page_views 进行分组,但不添加

根据我上面的查询,index.php 的 page_views =25

最佳答案

您需要 SUM 聚合函数:

SELECT
  ip,
  page,
  CONCAT(MIN(date), " - ", MAX(date)) as date_range,
  SUM(page_views) as total_page_views
FROM stats_tracker
GROUP BY page
ORDER BY total_page_views DESC

基本原因是 MySQL 不知道您希望在分组时如何组合值。有时你想计算,有时你想求和,甚至可以求平均值。查看the MySQL Aggregate Functions page .

关于mysql - 如何在mysql表的列中按值添加分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420703/

相关文章:

python - SQL根据记录是否存在外键指向它来选择查询记录

mysql - 通过浏览器编辑数据库的优雅方式?

php - 更新数据库当前字段

mysql - 如何在 MySQL 触发器中创建复杂 IF 条件

mysql - 尝试查询首次参加者的历史记录

PHP PDO : How to deal with bindValue() and reserved keywords?

mysql - 如何在MySQL触发器实现中使用gearman客户端

mysql - 带参数的 Crystal Report XI 和 MySQL 存储过程

MySQL如何检查两个日期之间的空白期

php - 如何使用 php 从本地 wamp 服务器连接在线 mysql 数据库服务器?