我有
SELECT
id, email, voucher_id, created_at_reservation, reservation_id
FROM[/span
(SELECT *)
FROM users
LEFT JOIN
(SELECT)
status, user_id, voucher_id,
created_at AS created_at_reservation, id AS reservation_id
FROM[/span
預訂
WHERE
reservations.status = 'paid') AS r ON r.user_id = users.id) AS u
而我想通過u.id得到最小的u.created_at_reservation,我想有一個新的列,如果該行包含該u.id的最小u.created_at_reservation,則為TRUE。
uj5u.com熱心網友回復:
除非你使用一些古老的DBMS,否則使用一個視窗函式可能是最簡單的:
SELECT id, email, voucher_id, created_at_reservation, reservation_id
, MIN(created_at_reservation) OVER (PARTITION BY id) as min_reservation
[...]
對于布爾列,你可以添加另一個最外層:
SELECT ..., created_at_reservation = min_reservationas new_col
FROM (
SELECT id, email, voucher_id, created_at_reservation, reservation_id
, MIN(created_at_reservation) OVER (PARTITION BY id) as min_reservation
[...]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334024.html
標籤:
下一篇:如何消除sql計算中的冗余值?
