MYSQL总和,内部选择返回最大日期
我试图提出一个查询,该查询将采用下表(名为MYSQL总和,内部选择返回最大日期,mysql,sql,Mysql,Sql,我试图提出一个查询,该查询将采用下表(名为sales): 并将返回以下内容: user_id | order_total | num_orders | last_order | 1 | 450 | 3 | 2013-06-04 | 3 | 105 | 1 | 2014-10-27 | 2 | 100 | 1
sales
):
并将返回以下内容:
user_id | order_total | num_orders | last_order |
1 | 450 | 3 | 2013-06-04 |
3 | 105 | 1 | 2014-10-27 |
2 | 100 | 1 | 2015-02-01 |
到目前为止,我提出了以下SQL来获得结果:
SELECT
DISTINCT a.user_id,
SUM(order_total) AS order_total,
COUNT(*) AS num_orders,
b.order_date as last_order
FROM
`sales` AS a,
(
SELECT
order_date,
user_id
FROM `sales`
ORDER BY order_date DESC
) AS b
WHERE a.user_id = b.user_id
GROUP BY user_id
ORDER BY order_total DESC
然而,问题是它返回:
user_id | order_total | num_orders | last_order |
1 | 1350 | 9 | 2013-06-04 |
3 | 105 | 1 | 2014-10-27 |
2 | 100 | 1 | 2015-02-01 |
是否有某种方法可以防止子查询影响Sum和Count的结果?还是我的做法不对?为什么要使用子选择
SELECT user_id,
SUM(order_total) AS order_total,
MAX(order_date) AS lastOrder,
COUNT(*) AS num_orders
FROM table
GROUP BY user_id
ORDER BY order_total DESC
为什么要使用subselect
SELECT user_id,
SUM(order_total) AS order_total,
MAX(order_date) AS lastOrder,
COUNT(*) AS num_orders
FROM table
GROUP BY user_id
ORDER BY order_total DESC
请尝试指定您分组的用户id-a.user\U id或b.user\U id 1的上一个订单日期是2013-06-04?或2015-01-08?@GiorgiNakeuri抱歉,我的错误-我已更正了示例数据。请尝试指定您分组的用户id-1的a.user\U id或b.user\U idLast order date为2013-06-04?或者2015-01-08?@GiorgiNakeuri抱歉,我的错误-我已经更正了示例数据。按订单进行。我真的用它做了一顿饭。。。谢谢,伙计。一份一份的来。我真的用它做了一顿饭。。。谢谢你,伙计。