MySQL 查询 - 每个订单的平均行数,每月

标签 mysql

我有一张表格显示以前的订单。
购买的每件商品都作为单独的行添加到表中,请参阅下面的转储。

我的目标是按月显示每个订单的平均行数。 要获得平均行数,我需要将购买的商品数量除以所下订单的数量。

我的查询目前提供每月总计,line_count 返回正确的购买商品数量,但我似乎无法返回所下订单的数量(在下面的转储中应该给出13).我试过添加各种子查询,但我不确定如何去做。有什么想法吗?

SELECT 
date, 
COUNT(orderno) AS line_count 
FROM `orders` 
AND 
date BETWEEN '2010-01-21' AND CURDATE() 
GROUP BY month(date), year(date) 
ORDER BY date

这是表架构(为清楚起见进行了简化)

CREATE TABLE IF NOT EXISTS `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
  `orderno` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=22904 ;

--
-- Dumping data for table `orders`
--

INSERT INTO `orders` (`id`, `orderno`, `date`) VALUES
(1, 'rad10000', '2010-01-21'),
(2, 'rad10000', '2010-01-21'),
(3, 'rad10001', '2010-01-21'),
(4, 'rad10001', '2010-01-21'),
(5, 'rad10002', '2010-01-21'),
(6, 'rad10003', '2010-01-21'),
(8, 'rad10003', '2010-01-21'),
(9, 'rad10003', '2010-01-21'),
(10, 'rad10004', '2010-01-22'),
(11, 'rad10004', '2010-01-22'),
(12, 'rad10005', '2010-01-22'),
(13, 'rad10005', '2010-01-22'),
(14, 'rad10006', '2010-01-22'),
(15, 'rad10007', '2010-01-22'),
(16, 'rad10008', '2010-01-22'),
(17, 'rad10009', '2010-01-22'),
(18, 'rad10010', '2010-01-22'),
(19, 'rad10011', '2010-01-22'),
(20, 'rad10012', '2010-01-22');

最佳答案

哦,我明白了......

 SELECT YEAR(date)
      , MONTH(date) 
      , COUNT(*) line_count 
      , COUNT(DISTINCT orderno) orders_placed
   FROM orders
  WHERE date BETWEEN '2010-01-21' AND CURDATE() 
  GROUP 
     BY YEAR(date)
      , MONTH(date)  
  ORDER  
     BY date;

关于MySQL 查询 - 每个订单的平均行数,每月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15544925/

相关文章:

php - MYSQL : GROUP BY issues With ORDER BY

mysql - 在 mysql 服务器上触发两个查询会出现错误

php - 计算MySQL中的特定输入

mysql - 我如何使用 laravel 中的联合来创建查询搜索

mysql - 向 MySQL 添加一列以记录创建条目的日期

mysql - JWT 管理员、用户等

带有重音字符的 PHP serialize() 导致序列化不完整

php - 使用同一查询更新两行

php - 从每个类别中选择最近 3 条新闻 - 两个表 - (MySQL - PHP)

PHP 包含 SQL 结果(分页)的 float div 和另一个包含内容的 div 之间的间距