Orders per User in One Report
The report currently recounts orders separately for every user, which scales poorly on larger data. Rewrite it as one set-based calculation: every user must remain in the result, even with no orders. Return id and orders_count, sorted by id.
Original query
SELECT u.id, (SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) AS orders_count FROM users u ORDER BY u.id
Laukiamo rezultato pavyzdys
Taip atrodo teisingas atsakymas — jo eilučių skaičius yra savitas, jis neprivalo sutapti su schemos lentelėmis.
| id | orders_count |
|---|---|
| 1 | 2 |
| 2 | 2 |
| 3 | 1 |
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
Prisijungti