'DISTINCT nor GROUP BY doesn't work to return unique values
SELECT DISTINCT order_reference as barcode,
mth.location as location,
mth.last_update_ts as updated
FROM sales_order_header soh
INNER JOIN manufacturing_tracking_history mth
ON soh.id = mth.sales_order_header_id
GROUP BY barcode, location, updated
ORDER BY updated DESC
LIMIT 3000;
barcode location updated
0 BR2MGK Tracking.Tracking.Tracking.TT03 2020-09-16 17:18:02
1 BR2MGK Surfacing.Blocking.Blocking.AB8 2020-09-16 17:25:53
2 BR2MGK Surfacing.Blocking.Blocking.AB8 2020-09-16 17:27:43
3 BR2MGK Surfacing.Blocking.Blocking.C6 2020-09-16 17:37:23
4 BR2MGK Tracking.Tracking.Tracking.BKCT 2020-09-16 17:41:13
I need only latest updated location from each barcode but I can't achieve that. Please help I am a newbie.
Solution 1:[1]
I think you can do that by using Row_number() like this:
select barcode, location, updated from (
SELECT order_reference as barcode,
mth.location as location,
mth.last_update_ts as updated,
row_number() over(partition by order_reference order by mth.last_update_ts desc) rw
FROM sales_order_header soh
INNER JOIN manufacturing_tracking_history mth
ON soh.id = mth.sales_order_header_id
) t
where t.rw=1
limit 3000;
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Saeed Esmaeelinejad |
