我有一个与数据排序和分组有关的问题。
在下面的查询中,我已插入订单ID,付款ID,公共ID,并在某些付款日期创建,按订单ID和创建日期排序:
INSERT INTO order_payment_public_id (order_id, payment_id, public_id, created_at)
SELECT o.order_id, p.payment_id, ppid.public_id, p.created_at
FROM order_ids o
JOIN payment_request_index pr ON o.order_id=pr.order_id
JOIN payment_index p ON p.payment_request_id=pr.payment_request_id
JOIN payment_public_id ppid ON ppid.payment_id=p.payment_id
ORDER BY o.order_id ASC, p.created_at ASC;
然后我执行以下查询:
SELECT * FROM order_payment_public_id GROUP BY order_id;
当我执行第一个查询时,我预计最早的created_at
日期将在第一次出现order_id
时位于第一行。然后,当我执行第二个查询时,我希望我将留下包含最早created_at
日期的订单。
我的问题是:我的假设是否正确?使用GROUP BY order_id
时,查询是否始终按每个order_id
出现的第一行分组,其中包含最早的created_at
日期?
对于我的问题,我将不胜感激。非常感谢。