mysql - select count in mysql on 2 fields 以获取聚合结果

标签 mysql

我有一个 mysql 表。

+----+----------------+-----------+---------------+---------------------+
| id | transaction_id |  user_id  |    book_id    |    purchase_date    |
+----+----------------+-----------+---------------+---------------------+
| 52 | bq4ren25a8w0   | ABC_00002 | xxxx951410361 | 2017-04-25 12:30:18 |
| 66 | j4ax039ilc00   | ABC_00260 | xxxx951410392 | 2017-04-25 12:30:18 |
| 67 | s2a57kp4g000   | ABC_00260 | xxxx951410361 | 2017-06-05 12:28:56 |
| 68 | h4z4h80ts000   | ABC_00260 | xxxx951410415 | 2017-06-07 12:47:24 |
| 69 | 2bt7ipsf9sy3   | ABC_00262 | xxxx951410392 | 2017-06-05 13:25:10 |
| 70 | x0rlwhm00000   | ABC_00264 | xxxx951410392 | 2017-06-09 14:23:08 |
+----+----------------+-----------+---------------+---------------------+

我需要一个按 book_id + buy_date 分组的结果

+---------------+---------------------+-------+
|    book_id    |    purchase_date    | count |
+---------------+---------------------+-------+
| xxxx951410361 | 2017-04-25 12:30:18 |    10 |
| xxxx951410392 | 2017-06-05 14:27:19 |    12 |
+---------------+---------------------+-------+

我对mysql接触不多,只是尝试过

Select Count(book_id) as book_id, purchase_date 
FROM tbl_name 
GROUP BY book_id, purchase_date

它不工作。

需要一些帮助

最佳答案

您可以使用日期按天对购买进行分组。

SELECT book_id,COUNT(book_id),DATE(purchase_date) AS pdate FROM book_sales GROUP BY book_id,pdate;

如果您想知道特定日期售出了多少本书,您可以使用:

SELECT DATE(purchase_date) AS purchase_date,COUNT(DATE(purchase_date)) AS books FROM book_sales GROUP BY DATE(purchase_date);

http://sqlfiddle.com/#!9/4cde14/6

关于mysql - select count in mysql on 2 fields 以获取聚合结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46460352/

相关文章:

php - 查询表格并根据其状态求和数据

mysql - MySQL 中何时使用单引号、双引号和反引号

c# - 如何将 mysql 日期时间字符串转换为 c# 日期时间字符串?

mysql - 从 2 个表中获取记录数 - 一对多关系

MySQL BETWEEN 行为怪异

php - 计算起点半径内位置的最佳方法

php - $_GET 和 table.php?ini=ABC

java - 小型 JSP 应用程序不起作用

java - Spring JDBC MySQL/MariaDB 数据在第 1 行的 'start_date' 列被截断

Python mysql 删除行问题