Show every sale alongside customer spending
An analyst wants one invoice per row, with the customer’s total spending beside it. GROUP BY provides totals but removes invoice detail. Joining a grouped subquery adds that detail back. A window aggregate often states the request more directly.
A window function calculates a value over a related set of query rows while preserving individual rows. OVER defines that set, its ordering and, for frame-sensitive functions, the portion used in the calculation. Think of it as adding an analytical column without automatically collapsing the input.
We will move from customer totals to ranks, cumulative revenue, moving averages and neighboring invoices. The hard part is choosing the correct population, tie policy and frame—not remembering a function name.
Prerequisite: GROUP BY foundations and WHERE vs HAVING. Related: Aggregation · Filtering · JOINs and Subqueries. Practice: this lesson’s exercises. Follow the SQL Learning Hub path.
The Chinook sample database
These examples use the complete Chinook music-store database available in the DataTug demo: 59 customers and 412 invoices, with every original table and value retained. All 59 customers have invoices. Queries that focus on one customer or qualifying invoices show that condition explicitly in the SQL.
The relationship is Customer.CustomerId → Invoice.CustomerId: one customer can have many invoices; each invoice belongs to one customer. InvoiceId is the invoice’s unique key. InvoiceDate is uniformly formatted YYYY-MM-DD HH:MM:SS text, which supports the date comparisons and ordering shown here; Total is a numeric amount in the dataset’s units. This source uses dates from 2021–2025; other Chinook releases differ. Use InvoiceDate rather than assuming invoice IDs guarantee date order.
Results are shown as a preview for clarity. Tables with more than 10 records initially show the first 10. Choose Show all to reveal every matching record, or Run to execute the exact displayed SQL in the DataTug editor against the same Chinook database. No query is saved to the project. The preview does not add a WHERE or LIMIT clause. Synthetic examples define their own rows with VALUES in the displayed query.
Download the complete Chinook SQLite database and open it with SQLite 3.25.0 or later, then run any query below. No account or network database is required. Query downloads contain every displayed example and exercise solution. Frozen result tables are checked against this database; each code header states its minimum SQLite version.
Chinook upstream and schema · Chinook licence · Source attribution. SQLite uses binary floating-point for many decimal operations; examples round money for display. Production finance needs an explicit exact-decimal or integer-minor-unit policy.
Invoice source rows
Which invoices belong to customer 1?
SELECT InvoiceId, CustomerId, InvoiceDate, Total
FROM Invoice WHERE CustomerId = 1
ORDER BY InvoiceDate, InvoiceId;| InvoiceId | CustomerId | InvoiceDate | Total |
|---|---|---|---|
| 98 | 1 | 2022-03-11 00:00:00 | 3.98 |
| 121 | 1 | 2022-06-13 00:00:00 | 3.96 |
| 143 | 1 | 2022-09-15 00:00:00 | 5.94 |
| 195 | 1 | 2023-05-06 00:00:00 | 0.99 |
| 316 | 1 | 2024-10-27 00:00:00 | 1.98 |
| 327 | 1 | 2024-12-07 00:00:00 | 13.86 |
| 382 | 1 | 2025-08-07 00:00:00 | 8.91 |
GROUP BY collapses; a window annotates
One input, two output grains
- 1412 invoice rows across 59 customers
- 2GROUP BY: 59 customer summary rows
- 3Window SUM: 412 invoice rows with customer totals
A grouped aggregate returns one row per group. A window aggregate computes across a partition but retains input rows. Compare the source and outputs, and highlight a customer to see how their total repeats.
Source, summary and annotated detail
All invoice source rows
Inspect the exact input population for the grouped and window outputs.
SELECT InvoiceId, CustomerId, InvoiceDate, Total
FROM Invoice
ORDER BY CustomerId, InvoiceDate, InvoiceId;Show all 412 recordsShow first 10 records
| InvoiceId | CustomerId | InvoiceDate | Total |
|---|---|---|---|
| 98 | 1 | 2022-03-11 00:00:00 | 3.98 |
| 121 | 1 | 2022-06-13 00:00:00 | 3.96 |
| 143 | 1 | 2022-09-15 00:00:00 | 5.94 |
| 195 | 1 | 2023-05-06 00:00:00 | 0.99 |
| 316 | 1 | 2024-10-27 00:00:00 | 1.98 |
| 327 | 1 | 2024-12-07 00:00:00 | 13.86 |
| 382 | 1 | 2025-08-07 00:00:00 | 8.91 |
| 1 | 2 | 2021-01-01 00:00:00 | 1.98 |
| 12 | 2 | 2021-02-11 00:00:00 | 13.86 |
| 67 | 2 | 2021-10-12 00:00:00 | 8.91 |
| 196 | 2 | 2023-05-19 00:00:00 | 1.98 |
| 219 | 2 | 2023-08-21 00:00:00 | 3.96 |
| 241 | 2 | 2023-11-23 00:00:00 | 5.94 |
| 293 | 2 | 2024-07-13 00:00:00 | 0.99 |
| 99 | 3 | 2022-03-11 00:00:00 | 3.98 |
| 110 | 3 | 2022-04-21 00:00:00 | 13.86 |
| 165 | 3 | 2022-12-20 00:00:00 | 8.91 |
| 294 | 3 | 2024-07-26 00:00:00 | 1.98 |
| 317 | 3 | 2024-10-28 00:00:00 | 3.96 |
| 339 | 3 | 2025-01-30 00:00:00 | 5.94 |
| 391 | 3 | 2025-09-20 00:00:00 | 0.99 |
| 2 | 4 | 2021-01-02 00:00:00 | 3.96 |
| 24 | 4 | 2021-04-06 00:00:00 | 5.94 |
| 76 | 4 | 2021-11-25 00:00:00 | 0.99 |
| 197 | 4 | 2023-05-19 00:00:00 | 1.98 |
| 208 | 4 | 2023-06-29 00:00:00 | 15.86 |
| 263 | 4 | 2024-02-27 00:00:00 | 8.91 |
| 392 | 4 | 2025-10-03 00:00:00 | 1.98 |
| 77 | 5 | 2021-12-08 00:00:00 | 1.98 |
| 100 | 5 | 2022-03-12 00:00:00 | 3.96 |
| 122 | 5 | 2022-06-14 00:00:00 | 5.94 |
| 174 | 5 | 2023-02-02 00:00:00 | 0.99 |
| 295 | 5 | 2024-07-26 00:00:00 | 1.98 |
| 306 | 5 | 2024-09-05 00:00:00 | 16.86 |
| 361 | 5 | 2025-05-06 00:00:00 | 8.91 |
| 46 | 6 | 2021-07-11 00:00:00 | 8.91 |
| 175 | 6 | 2023-02-15 00:00:00 | 1.98 |
| 198 | 6 | 2023-05-20 00:00:00 | 3.96 |
| 220 | 6 | 2023-08-22 00:00:00 | 5.94 |
| 272 | 6 | 2024-04-11 00:00:00 | 0.99 |
| 393 | 6 | 2025-10-03 00:00:00 | 1.98 |
| 404 | 6 | 2025-11-13 00:00:00 | 25.86 |
| 78 | 7 | 2021-12-08 00:00:00 | 1.98 |
| 89 | 7 | 2022-01-18 00:00:00 | 18.86 |
| 144 | 7 | 2022-09-18 00:00:00 | 8.91 |
| 273 | 7 | 2024-04-24 00:00:00 | 1.98 |
| 296 | 7 | 2024-07-27 00:00:00 | 3.96 |
| 318 | 7 | 2024-10-29 00:00:00 | 5.94 |
| 370 | 7 | 2025-06-19 00:00:00 | 0.99 |
| 3 | 8 | 2021-01-03 00:00:00 | 5.94 |
| 55 | 8 | 2021-08-24 00:00:00 | 0.99 |
| 176 | 8 | 2023-02-15 00:00:00 | 1.98 |
| 187 | 8 | 2023-03-28 00:00:00 | 13.86 |
| 242 | 8 | 2023-11-26 00:00:00 | 8.91 |
| 371 | 8 | 2025-07-02 00:00:00 | 1.98 |
| 394 | 8 | 2025-10-04 00:00:00 | 3.96 |
| 56 | 9 | 2021-09-06 00:00:00 | 1.98 |
| 79 | 9 | 2021-12-09 00:00:00 | 3.96 |
| 101 | 9 | 2022-03-13 00:00:00 | 5.94 |
| 153 | 9 | 2022-11-01 00:00:00 | 0.99 |
| 274 | 9 | 2024-04-24 00:00:00 | 1.98 |
| 285 | 9 | 2024-06-04 00:00:00 | 13.86 |
| 340 | 9 | 2025-02-02 00:00:00 | 8.91 |
| 25 | 10 | 2021-04-09 00:00:00 | 8.91 |
| 154 | 10 | 2022-11-14 00:00:00 | 1.98 |
| 177 | 10 | 2023-02-16 00:00:00 | 3.96 |
| 199 | 10 | 2023-05-21 00:00:00 | 5.94 |
| 251 | 10 | 2024-01-09 00:00:00 | 0.99 |
| 372 | 10 | 2025-07-02 00:00:00 | 1.98 |
| 383 | 10 | 2025-08-12 00:00:00 | 13.86 |
| 57 | 11 | 2021-09-06 00:00:00 | 1.98 |
| 68 | 11 | 2021-10-17 00:00:00 | 13.86 |
| 123 | 11 | 2022-06-17 00:00:00 | 8.91 |
| 252 | 11 | 2024-01-22 00:00:00 | 1.98 |
| 275 | 11 | 2024-04-25 00:00:00 | 3.96 |
| 297 | 11 | 2024-07-28 00:00:00 | 5.94 |
| 349 | 11 | 2025-03-18 00:00:00 | 0.99 |
| 34 | 12 | 2021-05-23 00:00:00 | 0.99 |
| 155 | 12 | 2022-11-14 00:00:00 | 1.98 |
| 166 | 12 | 2022-12-25 00:00:00 | 13.86 |
| 221 | 12 | 2023-08-25 00:00:00 | 8.91 |
| 350 | 12 | 2025-03-31 00:00:00 | 1.98 |
| 373 | 12 | 2025-07-03 00:00:00 | 3.96 |
| 395 | 12 | 2025-10-05 00:00:00 | 5.94 |
| 35 | 13 | 2021-06-05 00:00:00 | 1.98 |
| 58 | 13 | 2021-09-07 00:00:00 | 3.96 |
| 80 | 13 | 2021-12-10 00:00:00 | 5.94 |
| 132 | 13 | 2022-07-31 00:00:00 | 0.99 |
| 253 | 13 | 2024-01-22 00:00:00 | 1.98 |
| 264 | 13 | 2024-03-03 00:00:00 | 13.86 |
| 319 | 13 | 2024-11-01 00:00:00 | 8.91 |
| 4 | 14 | 2021-01-06 00:00:00 | 8.91 |
| 133 | 14 | 2022-08-13 00:00:00 | 1.98 |
| 156 | 14 | 2022-11-15 00:00:00 | 3.96 |
| 178 | 14 | 2023-02-17 00:00:00 | 5.94 |
| 230 | 14 | 2023-10-08 00:00:00 | 0.99 |
| 351 | 14 | 2025-03-31 00:00:00 | 1.98 |
| 362 | 14 | 2025-05-11 00:00:00 | 13.86 |
| 36 | 15 | 2021-06-05 00:00:00 | 1.98 |
| 47 | 15 | 2021-07-16 00:00:00 | 13.86 |
| 102 | 15 | 2022-03-16 00:00:00 | 9.91 |
| 231 | 15 | 2023-10-21 00:00:00 | 1.98 |
| 254 | 15 | 2024-01-23 00:00:00 | 3.96 |
| 276 | 15 | 2024-04-26 00:00:00 | 5.94 |
| 328 | 15 | 2024-12-15 00:00:00 | 0.99 |
| 13 | 16 | 2021-02-19 00:00:00 | 0.99 |
| 134 | 16 | 2022-08-13 00:00:00 | 1.98 |
| 145 | 16 | 2022-09-23 00:00:00 | 13.86 |
| 200 | 16 | 2023-05-24 00:00:00 | 8.91 |
| 329 | 16 | 2024-12-28 00:00:00 | 1.98 |
| 352 | 16 | 2025-04-01 00:00:00 | 3.96 |
| 374 | 16 | 2025-07-04 00:00:00 | 5.94 |
| 14 | 17 | 2021-03-04 00:00:00 | 1.98 |
| 37 | 17 | 2021-06-06 00:00:00 | 3.96 |
| 59 | 17 | 2021-09-08 00:00:00 | 5.94 |
| 111 | 17 | 2022-04-29 00:00:00 | 0.99 |
| 232 | 17 | 2023-10-21 00:00:00 | 1.98 |
| 243 | 17 | 2023-12-01 00:00:00 | 13.86 |
| 298 | 17 | 2024-07-31 00:00:00 | 10.91 |
| 112 | 18 | 2022-05-12 00:00:00 | 1.98 |
| 135 | 18 | 2022-08-14 00:00:00 | 3.96 |
| 157 | 18 | 2022-11-16 00:00:00 | 5.94 |
| 209 | 18 | 2023-07-07 00:00:00 | 0.99 |
| 330 | 18 | 2024-12-28 00:00:00 | 1.98 |
| 341 | 18 | 2025-02-07 00:00:00 | 13.86 |
| 396 | 18 | 2025-10-08 00:00:00 | 8.91 |
| 15 | 19 | 2021-03-04 00:00:00 | 1.98 |
| 26 | 19 | 2021-04-14 00:00:00 | 13.86 |
| 81 | 19 | 2021-12-13 00:00:00 | 8.91 |
| 210 | 19 | 2023-07-20 00:00:00 | 1.98 |
| 233 | 19 | 2023-10-22 00:00:00 | 3.96 |
| 255 | 19 | 2024-01-24 00:00:00 | 5.94 |
| 307 | 19 | 2024-09-13 00:00:00 | 1.99 |
| 113 | 20 | 2022-05-12 00:00:00 | 1.98 |
| 124 | 20 | 2022-06-22 00:00:00 | 13.86 |
| 179 | 20 | 2023-02-20 00:00:00 | 8.91 |
| 308 | 20 | 2024-09-26 00:00:00 | 3.98 |
| 331 | 20 | 2024-12-29 00:00:00 | 3.96 |
| 353 | 20 | 2025-04-02 00:00:00 | 5.94 |
| 405 | 20 | 2025-11-21 00:00:00 | 0.99 |
| 16 | 21 | 2021-03-05 00:00:00 | 3.96 |
| 38 | 21 | 2021-06-07 00:00:00 | 5.94 |
| 90 | 21 | 2022-01-26 00:00:00 | 0.99 |
| 211 | 21 | 2023-07-20 00:00:00 | 1.98 |
| 222 | 21 | 2023-08-30 00:00:00 | 13.86 |
| 277 | 21 | 2024-04-29 00:00:00 | 8.91 |
| 406 | 21 | 2025-12-04 00:00:00 | 1.98 |
| 91 | 22 | 2022-02-08 00:00:00 | 1.98 |
| 114 | 22 | 2022-05-13 00:00:00 | 3.96 |
| 136 | 22 | 2022-08-15 00:00:00 | 5.94 |
| 188 | 22 | 2023-04-05 00:00:00 | 0.99 |
| 309 | 22 | 2024-09-26 00:00:00 | 3.98 |
| 320 | 22 | 2024-11-06 00:00:00 | 13.86 |
| 375 | 22 | 2025-07-07 00:00:00 | 8.91 |
| 5 | 23 | 2021-01-11 00:00:00 | 13.86 |
| 60 | 23 | 2021-09-11 00:00:00 | 8.91 |
| 189 | 23 | 2023-04-18 00:00:00 | 1.98 |
| 212 | 23 | 2023-07-21 00:00:00 | 3.96 |
| 234 | 23 | 2023-10-23 00:00:00 | 5.94 |
| 286 | 23 | 2024-06-12 00:00:00 | 0.99 |
| 407 | 23 | 2025-12-04 00:00:00 | 1.98 |
| 92 | 24 | 2022-02-08 00:00:00 | 1.98 |
| 103 | 24 | 2022-03-21 00:00:00 | 15.86 |
| 158 | 24 | 2022-11-19 00:00:00 | 8.91 |
| 287 | 24 | 2024-06-25 00:00:00 | 1.98 |
| 310 | 24 | 2024-09-27 00:00:00 | 7.96 |
| 332 | 24 | 2024-12-30 00:00:00 | 5.94 |
| 384 | 24 | 2025-08-20 00:00:00 | 0.99 |
| 17 | 25 | 2021-03-06 00:00:00 | 5.94 |
| 69 | 25 | 2021-10-25 00:00:00 | 0.99 |
| 190 | 25 | 2023-04-18 00:00:00 | 1.98 |
| 201 | 25 | 2023-05-29 00:00:00 | 18.86 |
| 256 | 25 | 2024-01-27 00:00:00 | 8.91 |
| 385 | 25 | 2025-09-02 00:00:00 | 1.98 |
| 408 | 25 | 2025-12-05 00:00:00 | 3.96 |
| 70 | 26 | 2021-11-07 00:00:00 | 1.98 |
| 93 | 26 | 2022-02-09 00:00:00 | 3.96 |
| 115 | 26 | 2022-05-14 00:00:00 | 5.94 |
| 167 | 26 | 2023-01-02 00:00:00 | 0.99 |
| 288 | 26 | 2024-06-25 00:00:00 | 1.98 |
| 299 | 26 | 2024-08-05 00:00:00 | 23.86 |
| 354 | 26 | 2025-04-05 00:00:00 | 8.91 |
| 39 | 27 | 2021-06-10 00:00:00 | 8.91 |
| 168 | 27 | 2023-01-15 00:00:00 | 1.98 |
| 191 | 27 | 2023-04-19 00:00:00 | 3.96 |
| 213 | 27 | 2023-07-22 00:00:00 | 5.94 |
| 265 | 27 | 2024-03-11 00:00:00 | 0.99 |
| 386 | 27 | 2025-09-02 00:00:00 | 1.98 |
| 397 | 27 | 2025-10-13 00:00:00 | 13.86 |
| 71 | 28 | 2021-11-07 00:00:00 | 1.98 |
| 82 | 28 | 2021-12-18 00:00:00 | 13.86 |
| 137 | 28 | 2022-08-18 00:00:00 | 8.91 |
| 266 | 28 | 2024-03-24 00:00:00 | 1.98 |
| 289 | 28 | 2024-06-26 00:00:00 | 3.96 |
| 311 | 28 | 2024-09-28 00:00:00 | 11.94 |
| 363 | 28 | 2025-05-19 00:00:00 | 0.99 |
| 48 | 29 | 2021-07-24 00:00:00 | 0.99 |
| 169 | 29 | 2023-01-15 00:00:00 | 1.98 |
| 180 | 29 | 2023-02-25 00:00:00 | 13.86 |
| 235 | 29 | 2023-10-26 00:00:00 | 8.91 |
| 364 | 29 | 2025-06-01 00:00:00 | 1.98 |
| 387 | 29 | 2025-09-03 00:00:00 | 3.96 |
| 409 | 29 | 2025-12-06 00:00:00 | 5.94 |
| 49 | 30 | 2021-08-06 00:00:00 | 1.98 |
| 72 | 30 | 2021-11-08 00:00:00 | 3.96 |
| 94 | 30 | 2022-02-10 00:00:00 | 5.94 |
| 146 | 30 | 2022-10-01 00:00:00 | 0.99 |
| 267 | 30 | 2024-03-24 00:00:00 | 1.98 |
| 278 | 30 | 2024-05-04 00:00:00 | 13.86 |
| 333 | 30 | 2025-01-02 00:00:00 | 8.91 |
| 18 | 31 | 2021-03-09 00:00:00 | 8.91 |
| 147 | 31 | 2022-10-14 00:00:00 | 1.98 |
| 170 | 31 | 2023-01-16 00:00:00 | 3.96 |
| 192 | 31 | 2023-04-20 00:00:00 | 5.94 |
| 244 | 31 | 2023-12-09 00:00:00 | 0.99 |
| 365 | 31 | 2025-06-01 00:00:00 | 1.98 |
| 376 | 31 | 2025-07-12 00:00:00 | 13.86 |
| 50 | 32 | 2021-08-06 00:00:00 | 1.98 |
| 61 | 32 | 2021-09-16 00:00:00 | 13.86 |
| 116 | 32 | 2022-05-17 00:00:00 | 8.91 |
| 245 | 32 | 2023-12-22 00:00:00 | 1.98 |
| 268 | 32 | 2024-03-25 00:00:00 | 3.96 |
| 290 | 32 | 2024-06-27 00:00:00 | 5.94 |
| 342 | 32 | 2025-02-15 00:00:00 | 0.99 |
| 27 | 33 | 2021-04-22 00:00:00 | 0.99 |
| 148 | 33 | 2022-10-14 00:00:00 | 1.98 |
| 159 | 33 | 2022-11-24 00:00:00 | 13.86 |
| 214 | 33 | 2023-07-25 00:00:00 | 8.91 |
| 343 | 33 | 2025-02-28 00:00:00 | 1.98 |
| 366 | 33 | 2025-06-02 00:00:00 | 3.96 |
| 388 | 33 | 2025-09-04 00:00:00 | 5.94 |
| 28 | 34 | 2021-05-05 00:00:00 | 1.98 |
| 51 | 34 | 2021-08-07 00:00:00 | 3.96 |
| 73 | 34 | 2021-11-09 00:00:00 | 5.94 |
| 125 | 34 | 2022-06-30 00:00:00 | 0.99 |
| 246 | 34 | 2023-12-22 00:00:00 | 1.98 |
| 257 | 34 | 2024-02-01 00:00:00 | 13.86 |
| 312 | 34 | 2024-10-01 00:00:00 | 10.91 |
| 126 | 35 | 2022-07-13 00:00:00 | 1.98 |
| 149 | 35 | 2022-10-15 00:00:00 | 3.96 |
| 171 | 35 | 2023-01-17 00:00:00 | 5.94 |
| 223 | 35 | 2023-09-07 00:00:00 | 0.99 |
| 344 | 35 | 2025-02-28 00:00:00 | 1.98 |
| 355 | 35 | 2025-04-10 00:00:00 | 13.86 |
| 410 | 35 | 2025-12-09 00:00:00 | 8.91 |
| 29 | 36 | 2021-05-05 00:00:00 | 1.98 |
| 40 | 36 | 2021-06-15 00:00:00 | 13.86 |
| 95 | 36 | 2022-02-13 00:00:00 | 8.91 |
| 224 | 36 | 2023-09-20 00:00:00 | 1.98 |
| 247 | 36 | 2023-12-23 00:00:00 | 3.96 |
| 269 | 36 | 2024-03-26 00:00:00 | 5.94 |
| 321 | 36 | 2024-11-14 00:00:00 | 0.99 |
| 6 | 37 | 2021-01-19 00:00:00 | 0.99 |
| 127 | 37 | 2022-07-13 00:00:00 | 1.98 |
| 138 | 37 | 2022-08-23 00:00:00 | 13.86 |
| 193 | 37 | 2023-04-23 00:00:00 | 14.91 |
| 322 | 37 | 2024-11-27 00:00:00 | 1.98 |
| 345 | 37 | 2025-03-01 00:00:00 | 3.96 |
| 367 | 37 | 2025-06-03 00:00:00 | 5.94 |
| 7 | 38 | 2021-02-01 00:00:00 | 1.98 |
| 30 | 38 | 2021-05-06 00:00:00 | 3.96 |
| 52 | 38 | 2021-08-08 00:00:00 | 5.94 |
| 104 | 38 | 2022-03-29 00:00:00 | 0.99 |
| 225 | 38 | 2023-09-20 00:00:00 | 1.98 |
| 236 | 38 | 2023-10-31 00:00:00 | 13.86 |
| 291 | 38 | 2024-06-30 00:00:00 | 8.91 |
| 105 | 39 | 2022-04-11 00:00:00 | 1.98 |
| 128 | 39 | 2022-07-14 00:00:00 | 3.96 |
| 150 | 39 | 2022-10-16 00:00:00 | 5.94 |
| 202 | 39 | 2023-06-06 00:00:00 | 1.99 |
| 323 | 39 | 2024-11-27 00:00:00 | 1.98 |
| 334 | 39 | 2025-01-07 00:00:00 | 13.86 |
| 389 | 39 | 2025-09-07 00:00:00 | 8.91 |
| 8 | 40 | 2021-02-01 00:00:00 | 1.98 |
| 19 | 40 | 2021-03-14 00:00:00 | 13.86 |
| 74 | 40 | 2021-11-12 00:00:00 | 8.91 |
| 203 | 40 | 2023-06-19 00:00:00 | 2.98 |
| 226 | 40 | 2023-09-21 00:00:00 | 3.96 |
| 248 | 40 | 2023-12-24 00:00:00 | 5.94 |
| 300 | 40 | 2024-08-13 00:00:00 | 0.99 |
| 106 | 41 | 2022-04-11 00:00:00 | 1.98 |
| 117 | 41 | 2022-05-22 00:00:00 | 13.86 |
| 172 | 41 | 2023-01-20 00:00:00 | 8.91 |
| 301 | 41 | 2024-08-26 00:00:00 | 1.98 |
| 324 | 41 | 2024-11-28 00:00:00 | 3.96 |
| 346 | 41 | 2025-03-02 00:00:00 | 5.94 |
| 398 | 41 | 2025-10-21 00:00:00 | 0.99 |
| 9 | 42 | 2021-02-02 00:00:00 | 3.96 |
| 31 | 42 | 2021-05-07 00:00:00 | 5.94 |
| 83 | 42 | 2021-12-26 00:00:00 | 0.99 |
| 204 | 42 | 2023-06-19 00:00:00 | 3.98 |
| 215 | 42 | 2023-07-30 00:00:00 | 13.86 |
| 270 | 42 | 2024-03-29 00:00:00 | 8.91 |
| 399 | 42 | 2025-11-03 00:00:00 | 1.98 |
| 84 | 43 | 2022-01-08 00:00:00 | 1.98 |
| 107 | 43 | 2022-04-12 00:00:00 | 3.96 |
| 129 | 43 | 2022-07-15 00:00:00 | 5.94 |
| 181 | 43 | 2023-03-05 00:00:00 | 0.99 |
| 302 | 43 | 2024-08-26 00:00:00 | 1.98 |
| 313 | 43 | 2024-10-06 00:00:00 | 16.86 |
| 368 | 43 | 2025-06-06 00:00:00 | 8.91 |
| 53 | 44 | 2021-08-11 00:00:00 | 8.91 |
| 182 | 44 | 2023-03-18 00:00:00 | 1.98 |
| 205 | 44 | 2023-06-20 00:00:00 | 7.96 |
| 227 | 44 | 2023-09-22 00:00:00 | 5.94 |
| 279 | 44 | 2024-05-12 00:00:00 | 0.99 |
| 400 | 44 | 2025-11-03 00:00:00 | 1.98 |
| 411 | 44 | 2025-12-14 00:00:00 | 13.86 |
| 85 | 45 | 2022-01-08 00:00:00 | 1.98 |
| 96 | 45 | 2022-02-18 00:00:00 | 21.86 |
| 151 | 45 | 2022-10-19 00:00:00 | 8.91 |
| 280 | 45 | 2024-05-25 00:00:00 | 1.98 |
| 303 | 45 | 2024-08-27 00:00:00 | 3.96 |
| 325 | 45 | 2024-11-29 00:00:00 | 5.94 |
| 377 | 45 | 2025-07-20 00:00:00 | 0.99 |
| 10 | 46 | 2021-02-03 00:00:00 | 5.94 |
| 62 | 46 | 2021-09-24 00:00:00 | 0.99 |
| 183 | 46 | 2023-03-18 00:00:00 | 1.98 |
| 194 | 46 | 2023-04-28 00:00:00 | 21.86 |
| 249 | 46 | 2023-12-27 00:00:00 | 8.91 |
| 378 | 46 | 2025-08-02 00:00:00 | 1.98 |
| 401 | 46 | 2025-11-04 00:00:00 | 3.96 |
| 63 | 47 | 2021-10-07 00:00:00 | 1.98 |
| 86 | 47 | 2022-01-09 00:00:00 | 3.96 |
| 108 | 47 | 2022-04-13 00:00:00 | 5.94 |
| 160 | 47 | 2022-12-02 00:00:00 | 0.99 |
| 281 | 47 | 2024-05-25 00:00:00 | 1.98 |
| 292 | 47 | 2024-07-05 00:00:00 | 13.86 |
| 347 | 47 | 2025-03-05 00:00:00 | 8.91 |
| 32 | 48 | 2021-05-10 00:00:00 | 8.91 |
| 161 | 48 | 2022-12-15 00:00:00 | 1.98 |
| 184 | 48 | 2023-03-19 00:00:00 | 3.96 |
| 206 | 48 | 2023-06-21 00:00:00 | 8.94 |
| 258 | 48 | 2024-02-09 00:00:00 | 0.99 |
| 379 | 48 | 2025-08-02 00:00:00 | 1.98 |
| 390 | 48 | 2025-09-12 00:00:00 | 13.86 |
| 64 | 49 | 2021-10-07 00:00:00 | 1.98 |
| 75 | 49 | 2021-11-17 00:00:00 | 13.86 |
| 130 | 49 | 2022-07-18 00:00:00 | 8.91 |
| 259 | 49 | 2024-02-22 00:00:00 | 1.98 |
| 282 | 49 | 2024-05-26 00:00:00 | 3.96 |
| 304 | 49 | 2024-08-28 00:00:00 | 5.94 |
| 356 | 49 | 2025-04-18 00:00:00 | 0.99 |
| 41 | 50 | 2021-06-23 00:00:00 | 0.99 |
| 162 | 50 | 2022-12-15 00:00:00 | 1.98 |
| 173 | 50 | 2023-01-25 00:00:00 | 13.86 |
| 228 | 50 | 2023-09-25 00:00:00 | 8.91 |
| 357 | 50 | 2025-05-01 00:00:00 | 1.98 |
| 380 | 50 | 2025-08-03 00:00:00 | 3.96 |
| 402 | 50 | 2025-11-05 00:00:00 | 5.94 |
| 42 | 51 | 2021-07-06 00:00:00 | 1.98 |
| 65 | 51 | 2021-10-08 00:00:00 | 3.96 |
| 87 | 51 | 2022-01-10 00:00:00 | 6.94 |
| 139 | 51 | 2022-08-31 00:00:00 | 0.99 |
| 260 | 51 | 2024-02-22 00:00:00 | 1.98 |
| 271 | 51 | 2024-04-03 00:00:00 | 13.86 |
| 326 | 51 | 2024-12-02 00:00:00 | 8.91 |
| 11 | 52 | 2021-02-06 00:00:00 | 8.91 |
| 140 | 52 | 2022-09-13 00:00:00 | 1.98 |
| 163 | 52 | 2022-12-16 00:00:00 | 3.96 |
| 185 | 52 | 2023-03-20 00:00:00 | 5.94 |
| 237 | 52 | 2023-11-08 00:00:00 | 0.99 |
| 358 | 52 | 2025-05-01 00:00:00 | 1.98 |
| 369 | 52 | 2025-06-11 00:00:00 | 13.86 |
| 43 | 53 | 2021-07-06 00:00:00 | 1.98 |
| 54 | 53 | 2021-08-16 00:00:00 | 13.86 |
| 109 | 53 | 2022-04-16 00:00:00 | 8.91 |
| 238 | 53 | 2023-11-21 00:00:00 | 1.98 |
| 261 | 53 | 2024-02-23 00:00:00 | 3.96 |
| 283 | 53 | 2024-05-27 00:00:00 | 5.94 |
| 335 | 53 | 2025-01-15 00:00:00 | 0.99 |
| 20 | 54 | 2021-03-22 00:00:00 | 0.99 |
| 141 | 54 | 2022-09-13 00:00:00 | 1.98 |
| 152 | 54 | 2022-10-24 00:00:00 | 13.86 |
| 207 | 54 | 2023-06-24 00:00:00 | 8.91 |
| 336 | 54 | 2025-01-28 00:00:00 | 1.98 |
| 359 | 54 | 2025-05-02 00:00:00 | 3.96 |
| 381 | 54 | 2025-08-04 00:00:00 | 5.94 |
| 21 | 55 | 2021-04-04 00:00:00 | 1.98 |
| 44 | 55 | 2021-07-07 00:00:00 | 3.96 |
| 66 | 55 | 2021-10-09 00:00:00 | 5.94 |
| 118 | 55 | 2022-05-30 00:00:00 | 0.99 |
| 239 | 55 | 2023-11-21 00:00:00 | 1.98 |
| 250 | 55 | 2024-01-01 00:00:00 | 13.86 |
| 305 | 55 | 2024-08-31 00:00:00 | 8.91 |
| 119 | 56 | 2022-06-12 00:00:00 | 1.98 |
| 142 | 56 | 2022-09-14 00:00:00 | 3.96 |
| 164 | 56 | 2022-12-17 00:00:00 | 5.94 |
| 216 | 56 | 2023-08-07 00:00:00 | 0.99 |
| 337 | 56 | 2025-01-28 00:00:00 | 1.98 |
| 348 | 56 | 2025-03-10 00:00:00 | 13.86 |
| 403 | 56 | 2025-11-08 00:00:00 | 8.91 |
| 22 | 57 | 2021-04-04 00:00:00 | 1.98 |
| 33 | 57 | 2021-05-15 00:00:00 | 13.86 |
| 88 | 57 | 2022-01-13 00:00:00 | 17.91 |
| 217 | 57 | 2023-08-20 00:00:00 | 1.98 |
| 240 | 57 | 2023-11-22 00:00:00 | 3.96 |
| 262 | 57 | 2024-02-24 00:00:00 | 5.94 |
| 314 | 57 | 2024-10-14 00:00:00 | 0.99 |
| 120 | 58 | 2022-06-12 00:00:00 | 1.98 |
| 131 | 58 | 2022-07-23 00:00:00 | 13.86 |
| 186 | 58 | 2023-03-23 00:00:00 | 8.91 |
| 315 | 58 | 2024-10-27 00:00:00 | 1.98 |
| 338 | 58 | 2025-01-29 00:00:00 | 3.96 |
| 360 | 58 | 2025-05-03 00:00:00 | 5.94 |
| 412 | 58 | 2025-12-22 00:00:00 | 1.99 |
| 23 | 59 | 2021-04-05 00:00:00 | 3.96 |
| 45 | 59 | 2021-07-08 00:00:00 | 5.94 |
| 97 | 59 | 2022-02-26 00:00:00 | 1.99 |
| 218 | 59 | 2023-08-20 00:00:00 | 1.98 |
| 229 | 59 | 2023-09-30 00:00:00 | 13.86 |
| 284 | 59 | 2024-05-30 00:00:00 | 8.91 |
All 412 invoices across 59 customers. Every row is retained by the detail-preserving window example.
GROUP BY output
Find total spending per customer.
SELECT CustomerId, ROUND(SUM(Total), 2) AS CustomerTotal
FROM Invoice GROUP BY CustomerId ORDER BY CustomerId;Show all 59 recordsShow first 10 records
| CustomerId | CustomerTotal |
|---|---|
| 1 | 39.62 |
| 2 | 37.62 |
| 3 | 39.62 |
| 4 | 39.62 |
| 5 | 40.62 |
| 6 | 49.62 |
| 7 | 42.62 |
| 8 | 37.62 |
| 9 | 37.62 |
| 10 | 37.62 |
| 11 | 37.62 |
| 12 | 37.62 |
| 13 | 37.62 |
| 14 | 37.62 |
| 15 | 38.62 |
| 16 | 37.62 |
| 17 | 39.62 |
| 18 | 37.62 |
| 19 | 38.62 |
| 20 | 39.62 |
| 21 | 37.62 |
| 22 | 39.62 |
| 23 | 37.62 |
| 24 | 43.62 |
| 25 | 42.62 |
| 26 | 47.62 |
| 27 | 37.62 |
| 28 | 43.62 |
| 29 | 37.62 |
| 30 | 37.62 |
| 31 | 37.62 |
| 32 | 37.62 |
| 33 | 37.62 |
| 34 | 39.62 |
| 35 | 37.62 |
| 36 | 37.62 |
| 37 | 43.62 |
| 38 | 37.62 |
| 39 | 38.62 |
| 40 | 38.62 |
| 41 | 37.62 |
| 42 | 39.62 |
| 43 | 40.62 |
| 44 | 41.62 |
| 45 | 45.62 |
| 46 | 45.62 |
| 47 | 37.62 |
| 48 | 40.62 |
| 49 | 37.62 |
| 50 | 37.62 |
| 51 | 38.62 |
| 52 | 37.62 |
| 53 | 37.62 |
| 54 | 37.62 |
| 55 | 37.62 |
| 56 | 37.62 |
| 57 | 46.62 |
| 58 | 38.62 |
| 59 | 36.64 |
412 invoice rows become 59 customer summary rows. Every customer appears because all 59 have invoices.
Window output
Show every invoice alongside its customer’s total.
SELECT InvoiceId, CustomerId, Total,
ROUND(SUM(Total) OVER (PARTITION BY CustomerId), 2) AS CustomerTotal
FROM Invoice
ORDER BY CustomerId, InvoiceDate, InvoiceId;Show all 412 recordsShow first 10 records
| InvoiceId | CustomerId | Total | CustomerTotal |
|---|---|---|---|
| 98 | 1 | 3.98 | 39.62 |
| 121 | 1 | 3.96 | 39.62 |
| 143 | 1 | 5.94 | 39.62 |
| 195 | 1 | 0.99 | 39.62 |
| 316 | 1 | 1.98 | 39.62 |
| 327 | 1 | 13.86 | 39.62 |
| 382 | 1 | 8.91 | 39.62 |
| 1 | 2 | 1.98 | 37.62 |
| 12 | 2 | 13.86 | 37.62 |
| 67 | 2 | 8.91 | 37.62 |
| 196 | 2 | 1.98 | 37.62 |
| 219 | 2 | 3.96 | 37.62 |
| 241 | 2 | 5.94 | 37.62 |
| 293 | 2 | 0.99 | 37.62 |
| 99 | 3 | 3.98 | 39.62 |
| 110 | 3 | 13.86 | 39.62 |
| 165 | 3 | 8.91 | 39.62 |
| 294 | 3 | 1.98 | 39.62 |
| 317 | 3 | 3.96 | 39.62 |
| 339 | 3 | 5.94 | 39.62 |
| 391 | 3 | 0.99 | 39.62 |
| 2 | 4 | 3.96 | 39.62 |
| 24 | 4 | 5.94 | 39.62 |
| 76 | 4 | 0.99 | 39.62 |
| 197 | 4 | 1.98 | 39.62 |
| 208 | 4 | 15.86 | 39.62 |
| 263 | 4 | 8.91 | 39.62 |
| 392 | 4 | 1.98 | 39.62 |
| 77 | 5 | 1.98 | 40.62 |
| 100 | 5 | 3.96 | 40.62 |
| 122 | 5 | 5.94 | 40.62 |
| 174 | 5 | 0.99 | 40.62 |
| 295 | 5 | 1.98 | 40.62 |
| 306 | 5 | 16.86 | 40.62 |
| 361 | 5 | 8.91 | 40.62 |
| 46 | 6 | 8.91 | 49.62 |
| 175 | 6 | 1.98 | 49.62 |
| 198 | 6 | 3.96 | 49.62 |
| 220 | 6 | 5.94 | 49.62 |
| 272 | 6 | 0.99 | 49.62 |
| 393 | 6 | 1.98 | 49.62 |
| 404 | 6 | 25.86 | 49.62 |
| 78 | 7 | 1.98 | 42.62 |
| 89 | 7 | 18.86 | 42.62 |
| 144 | 7 | 8.91 | 42.62 |
| 273 | 7 | 1.98 | 42.62 |
| 296 | 7 | 3.96 | 42.62 |
| 318 | 7 | 5.94 | 42.62 |
| 370 | 7 | 0.99 | 42.62 |
| 3 | 8 | 5.94 | 37.62 |
| 55 | 8 | 0.99 | 37.62 |
| 176 | 8 | 1.98 | 37.62 |
| 187 | 8 | 13.86 | 37.62 |
| 242 | 8 | 8.91 | 37.62 |
| 371 | 8 | 1.98 | 37.62 |
| 394 | 8 | 3.96 | 37.62 |
| 56 | 9 | 1.98 | 37.62 |
| 79 | 9 | 3.96 | 37.62 |
| 101 | 9 | 5.94 | 37.62 |
| 153 | 9 | 0.99 | 37.62 |
| 274 | 9 | 1.98 | 37.62 |
| 285 | 9 | 13.86 | 37.62 |
| 340 | 9 | 8.91 | 37.62 |
| 25 | 10 | 8.91 | 37.62 |
| 154 | 10 | 1.98 | 37.62 |
| 177 | 10 | 3.96 | 37.62 |
| 199 | 10 | 5.94 | 37.62 |
| 251 | 10 | 0.99 | 37.62 |
| 372 | 10 | 1.98 | 37.62 |
| 383 | 10 | 13.86 | 37.62 |
| 57 | 11 | 1.98 | 37.62 |
| 68 | 11 | 13.86 | 37.62 |
| 123 | 11 | 8.91 | 37.62 |
| 252 | 11 | 1.98 | 37.62 |
| 275 | 11 | 3.96 | 37.62 |
| 297 | 11 | 5.94 | 37.62 |
| 349 | 11 | 0.99 | 37.62 |
| 34 | 12 | 0.99 | 37.62 |
| 155 | 12 | 1.98 | 37.62 |
| 166 | 12 | 13.86 | 37.62 |
| 221 | 12 | 8.91 | 37.62 |
| 350 | 12 | 1.98 | 37.62 |
| 373 | 12 | 3.96 | 37.62 |
| 395 | 12 | 5.94 | 37.62 |
| 35 | 13 | 1.98 | 37.62 |
| 58 | 13 | 3.96 | 37.62 |
| 80 | 13 | 5.94 | 37.62 |
| 132 | 13 | 0.99 | 37.62 |
| 253 | 13 | 1.98 | 37.62 |
| 264 | 13 | 13.86 | 37.62 |
| 319 | 13 | 8.91 | 37.62 |
| 4 | 14 | 8.91 | 37.62 |
| 133 | 14 | 1.98 | 37.62 |
| 156 | 14 | 3.96 | 37.62 |
| 178 | 14 | 5.94 | 37.62 |
| 230 | 14 | 0.99 | 37.62 |
| 351 | 14 | 1.98 | 37.62 |
| 362 | 14 | 13.86 | 37.62 |
| 36 | 15 | 1.98 | 38.62 |
| 47 | 15 | 13.86 | 38.62 |
| 102 | 15 | 9.91 | 38.62 |
| 231 | 15 | 1.98 | 38.62 |
| 254 | 15 | 3.96 | 38.62 |
| 276 | 15 | 5.94 | 38.62 |
| 328 | 15 | 0.99 | 38.62 |
| 13 | 16 | 0.99 | 37.62 |
| 134 | 16 | 1.98 | 37.62 |
| 145 | 16 | 13.86 | 37.62 |
| 200 | 16 | 8.91 | 37.62 |
| 329 | 16 | 1.98 | 37.62 |
| 352 | 16 | 3.96 | 37.62 |
| 374 | 16 | 5.94 | 37.62 |
| 14 | 17 | 1.98 | 39.62 |
| 37 | 17 | 3.96 | 39.62 |
| 59 | 17 | 5.94 | 39.62 |
| 111 | 17 | 0.99 | 39.62 |
| 232 | 17 | 1.98 | 39.62 |
| 243 | 17 | 13.86 | 39.62 |
| 298 | 17 | 10.91 | 39.62 |
| 112 | 18 | 1.98 | 37.62 |
| 135 | 18 | 3.96 | 37.62 |
| 157 | 18 | 5.94 | 37.62 |
| 209 | 18 | 0.99 | 37.62 |
| 330 | 18 | 1.98 | 37.62 |
| 341 | 18 | 13.86 | 37.62 |
| 396 | 18 | 8.91 | 37.62 |
| 15 | 19 | 1.98 | 38.62 |
| 26 | 19 | 13.86 | 38.62 |
| 81 | 19 | 8.91 | 38.62 |
| 210 | 19 | 1.98 | 38.62 |
| 233 | 19 | 3.96 | 38.62 |
| 255 | 19 | 5.94 | 38.62 |
| 307 | 19 | 1.99 | 38.62 |
| 113 | 20 | 1.98 | 39.62 |
| 124 | 20 | 13.86 | 39.62 |
| 179 | 20 | 8.91 | 39.62 |
| 308 | 20 | 3.98 | 39.62 |
| 331 | 20 | 3.96 | 39.62 |
| 353 | 20 | 5.94 | 39.62 |
| 405 | 20 | 0.99 | 39.62 |
| 16 | 21 | 3.96 | 37.62 |
| 38 | 21 | 5.94 | 37.62 |
| 90 | 21 | 0.99 | 37.62 |
| 211 | 21 | 1.98 | 37.62 |
| 222 | 21 | 13.86 | 37.62 |
| 277 | 21 | 8.91 | 37.62 |
| 406 | 21 | 1.98 | 37.62 |
| 91 | 22 | 1.98 | 39.62 |
| 114 | 22 | 3.96 | 39.62 |
| 136 | 22 | 5.94 | 39.62 |
| 188 | 22 | 0.99 | 39.62 |
| 309 | 22 | 3.98 | 39.62 |
| 320 | 22 | 13.86 | 39.62 |
| 375 | 22 | 8.91 | 39.62 |
| 5 | 23 | 13.86 | 37.62 |
| 60 | 23 | 8.91 | 37.62 |
| 189 | 23 | 1.98 | 37.62 |
| 212 | 23 | 3.96 | 37.62 |
| 234 | 23 | 5.94 | 37.62 |
| 286 | 23 | 0.99 | 37.62 |
| 407 | 23 | 1.98 | 37.62 |
| 92 | 24 | 1.98 | 43.62 |
| 103 | 24 | 15.86 | 43.62 |
| 158 | 24 | 8.91 | 43.62 |
| 287 | 24 | 1.98 | 43.62 |
| 310 | 24 | 7.96 | 43.62 |
| 332 | 24 | 5.94 | 43.62 |
| 384 | 24 | 0.99 | 43.62 |
| 17 | 25 | 5.94 | 42.62 |
| 69 | 25 | 0.99 | 42.62 |
| 190 | 25 | 1.98 | 42.62 |
| 201 | 25 | 18.86 | 42.62 |
| 256 | 25 | 8.91 | 42.62 |
| 385 | 25 | 1.98 | 42.62 |
| 408 | 25 | 3.96 | 42.62 |
| 70 | 26 | 1.98 | 47.62 |
| 93 | 26 | 3.96 | 47.62 |
| 115 | 26 | 5.94 | 47.62 |
| 167 | 26 | 0.99 | 47.62 |
| 288 | 26 | 1.98 | 47.62 |
| 299 | 26 | 23.86 | 47.62 |
| 354 | 26 | 8.91 | 47.62 |
| 39 | 27 | 8.91 | 37.62 |
| 168 | 27 | 1.98 | 37.62 |
| 191 | 27 | 3.96 | 37.62 |
| 213 | 27 | 5.94 | 37.62 |
| 265 | 27 | 0.99 | 37.62 |
| 386 | 27 | 1.98 | 37.62 |
| 397 | 27 | 13.86 | 37.62 |
| 71 | 28 | 1.98 | 43.62 |
| 82 | 28 | 13.86 | 43.62 |
| 137 | 28 | 8.91 | 43.62 |
| 266 | 28 | 1.98 | 43.62 |
| 289 | 28 | 3.96 | 43.62 |
| 311 | 28 | 11.94 | 43.62 |
| 363 | 28 | 0.99 | 43.62 |
| 48 | 29 | 0.99 | 37.62 |
| 169 | 29 | 1.98 | 37.62 |
| 180 | 29 | 13.86 | 37.62 |
| 235 | 29 | 8.91 | 37.62 |
| 364 | 29 | 1.98 | 37.62 |
| 387 | 29 | 3.96 | 37.62 |
| 409 | 29 | 5.94 | 37.62 |
| 49 | 30 | 1.98 | 37.62 |
| 72 | 30 | 3.96 | 37.62 |
| 94 | 30 | 5.94 | 37.62 |
| 146 | 30 | 0.99 | 37.62 |
| 267 | 30 | 1.98 | 37.62 |
| 278 | 30 | 13.86 | 37.62 |
| 333 | 30 | 8.91 | 37.62 |
| 18 | 31 | 8.91 | 37.62 |
| 147 | 31 | 1.98 | 37.62 |
| 170 | 31 | 3.96 | 37.62 |
| 192 | 31 | 5.94 | 37.62 |
| 244 | 31 | 0.99 | 37.62 |
| 365 | 31 | 1.98 | 37.62 |
| 376 | 31 | 13.86 | 37.62 |
| 50 | 32 | 1.98 | 37.62 |
| 61 | 32 | 13.86 | 37.62 |
| 116 | 32 | 8.91 | 37.62 |
| 245 | 32 | 1.98 | 37.62 |
| 268 | 32 | 3.96 | 37.62 |
| 290 | 32 | 5.94 | 37.62 |
| 342 | 32 | 0.99 | 37.62 |
| 27 | 33 | 0.99 | 37.62 |
| 148 | 33 | 1.98 | 37.62 |
| 159 | 33 | 13.86 | 37.62 |
| 214 | 33 | 8.91 | 37.62 |
| 343 | 33 | 1.98 | 37.62 |
| 366 | 33 | 3.96 | 37.62 |
| 388 | 33 | 5.94 | 37.62 |
| 28 | 34 | 1.98 | 39.62 |
| 51 | 34 | 3.96 | 39.62 |
| 73 | 34 | 5.94 | 39.62 |
| 125 | 34 | 0.99 | 39.62 |
| 246 | 34 | 1.98 | 39.62 |
| 257 | 34 | 13.86 | 39.62 |
| 312 | 34 | 10.91 | 39.62 |
| 126 | 35 | 1.98 | 37.62 |
| 149 | 35 | 3.96 | 37.62 |
| 171 | 35 | 5.94 | 37.62 |
| 223 | 35 | 0.99 | 37.62 |
| 344 | 35 | 1.98 | 37.62 |
| 355 | 35 | 13.86 | 37.62 |
| 410 | 35 | 8.91 | 37.62 |
| 29 | 36 | 1.98 | 37.62 |
| 40 | 36 | 13.86 | 37.62 |
| 95 | 36 | 8.91 | 37.62 |
| 224 | 36 | 1.98 | 37.62 |
| 247 | 36 | 3.96 | 37.62 |
| 269 | 36 | 5.94 | 37.62 |
| 321 | 36 | 0.99 | 37.62 |
| 6 | 37 | 0.99 | 43.62 |
| 127 | 37 | 1.98 | 43.62 |
| 138 | 37 | 13.86 | 43.62 |
| 193 | 37 | 14.91 | 43.62 |
| 322 | 37 | 1.98 | 43.62 |
| 345 | 37 | 3.96 | 43.62 |
| 367 | 37 | 5.94 | 43.62 |
| 7 | 38 | 1.98 | 37.62 |
| 30 | 38 | 3.96 | 37.62 |
| 52 | 38 | 5.94 | 37.62 |
| 104 | 38 | 0.99 | 37.62 |
| 225 | 38 | 1.98 | 37.62 |
| 236 | 38 | 13.86 | 37.62 |
| 291 | 38 | 8.91 | 37.62 |
| 105 | 39 | 1.98 | 38.62 |
| 128 | 39 | 3.96 | 38.62 |
| 150 | 39 | 5.94 | 38.62 |
| 202 | 39 | 1.99 | 38.62 |
| 323 | 39 | 1.98 | 38.62 |
| 334 | 39 | 13.86 | 38.62 |
| 389 | 39 | 8.91 | 38.62 |
| 8 | 40 | 1.98 | 38.62 |
| 19 | 40 | 13.86 | 38.62 |
| 74 | 40 | 8.91 | 38.62 |
| 203 | 40 | 2.98 | 38.62 |
| 226 | 40 | 3.96 | 38.62 |
| 248 | 40 | 5.94 | 38.62 |
| 300 | 40 | 0.99 | 38.62 |
| 106 | 41 | 1.98 | 37.62 |
| 117 | 41 | 13.86 | 37.62 |
| 172 | 41 | 8.91 | 37.62 |
| 301 | 41 | 1.98 | 37.62 |
| 324 | 41 | 3.96 | 37.62 |
| 346 | 41 | 5.94 | 37.62 |
| 398 | 41 | 0.99 | 37.62 |
| 9 | 42 | 3.96 | 39.62 |
| 31 | 42 | 5.94 | 39.62 |
| 83 | 42 | 0.99 | 39.62 |
| 204 | 42 | 3.98 | 39.62 |
| 215 | 42 | 13.86 | 39.62 |
| 270 | 42 | 8.91 | 39.62 |
| 399 | 42 | 1.98 | 39.62 |
| 84 | 43 | 1.98 | 40.62 |
| 107 | 43 | 3.96 | 40.62 |
| 129 | 43 | 5.94 | 40.62 |
| 181 | 43 | 0.99 | 40.62 |
| 302 | 43 | 1.98 | 40.62 |
| 313 | 43 | 16.86 | 40.62 |
| 368 | 43 | 8.91 | 40.62 |
| 53 | 44 | 8.91 | 41.62 |
| 182 | 44 | 1.98 | 41.62 |
| 205 | 44 | 7.96 | 41.62 |
| 227 | 44 | 5.94 | 41.62 |
| 279 | 44 | 0.99 | 41.62 |
| 400 | 44 | 1.98 | 41.62 |
| 411 | 44 | 13.86 | 41.62 |
| 85 | 45 | 1.98 | 45.62 |
| 96 | 45 | 21.86 | 45.62 |
| 151 | 45 | 8.91 | 45.62 |
| 280 | 45 | 1.98 | 45.62 |
| 303 | 45 | 3.96 | 45.62 |
| 325 | 45 | 5.94 | 45.62 |
| 377 | 45 | 0.99 | 45.62 |
| 10 | 46 | 5.94 | 45.62 |
| 62 | 46 | 0.99 | 45.62 |
| 183 | 46 | 1.98 | 45.62 |
| 194 | 46 | 21.86 | 45.62 |
| 249 | 46 | 8.91 | 45.62 |
| 378 | 46 | 1.98 | 45.62 |
| 401 | 46 | 3.96 | 45.62 |
| 63 | 47 | 1.98 | 37.62 |
| 86 | 47 | 3.96 | 37.62 |
| 108 | 47 | 5.94 | 37.62 |
| 160 | 47 | 0.99 | 37.62 |
| 281 | 47 | 1.98 | 37.62 |
| 292 | 47 | 13.86 | 37.62 |
| 347 | 47 | 8.91 | 37.62 |
| 32 | 48 | 8.91 | 40.62 |
| 161 | 48 | 1.98 | 40.62 |
| 184 | 48 | 3.96 | 40.62 |
| 206 | 48 | 8.94 | 40.62 |
| 258 | 48 | 0.99 | 40.62 |
| 379 | 48 | 1.98 | 40.62 |
| 390 | 48 | 13.86 | 40.62 |
| 64 | 49 | 1.98 | 37.62 |
| 75 | 49 | 13.86 | 37.62 |
| 130 | 49 | 8.91 | 37.62 |
| 259 | 49 | 1.98 | 37.62 |
| 282 | 49 | 3.96 | 37.62 |
| 304 | 49 | 5.94 | 37.62 |
| 356 | 49 | 0.99 | 37.62 |
| 41 | 50 | 0.99 | 37.62 |
| 162 | 50 | 1.98 | 37.62 |
| 173 | 50 | 13.86 | 37.62 |
| 228 | 50 | 8.91 | 37.62 |
| 357 | 50 | 1.98 | 37.62 |
| 380 | 50 | 3.96 | 37.62 |
| 402 | 50 | 5.94 | 37.62 |
| 42 | 51 | 1.98 | 38.62 |
| 65 | 51 | 3.96 | 38.62 |
| 87 | 51 | 6.94 | 38.62 |
| 139 | 51 | 0.99 | 38.62 |
| 260 | 51 | 1.98 | 38.62 |
| 271 | 51 | 13.86 | 38.62 |
| 326 | 51 | 8.91 | 38.62 |
| 11 | 52 | 8.91 | 37.62 |
| 140 | 52 | 1.98 | 37.62 |
| 163 | 52 | 3.96 | 37.62 |
| 185 | 52 | 5.94 | 37.62 |
| 237 | 52 | 0.99 | 37.62 |
| 358 | 52 | 1.98 | 37.62 |
| 369 | 52 | 13.86 | 37.62 |
| 43 | 53 | 1.98 | 37.62 |
| 54 | 53 | 13.86 | 37.62 |
| 109 | 53 | 8.91 | 37.62 |
| 238 | 53 | 1.98 | 37.62 |
| 261 | 53 | 3.96 | 37.62 |
| 283 | 53 | 5.94 | 37.62 |
| 335 | 53 | 0.99 | 37.62 |
| 20 | 54 | 0.99 | 37.62 |
| 141 | 54 | 1.98 | 37.62 |
| 152 | 54 | 13.86 | 37.62 |
| 207 | 54 | 8.91 | 37.62 |
| 336 | 54 | 1.98 | 37.62 |
| 359 | 54 | 3.96 | 37.62 |
| 381 | 54 | 5.94 | 37.62 |
| 21 | 55 | 1.98 | 37.62 |
| 44 | 55 | 3.96 | 37.62 |
| 66 | 55 | 5.94 | 37.62 |
| 118 | 55 | 0.99 | 37.62 |
| 239 | 55 | 1.98 | 37.62 |
| 250 | 55 | 13.86 | 37.62 |
| 305 | 55 | 8.91 | 37.62 |
| 119 | 56 | 1.98 | 37.62 |
| 142 | 56 | 3.96 | 37.62 |
| 164 | 56 | 5.94 | 37.62 |
| 216 | 56 | 0.99 | 37.62 |
| 337 | 56 | 1.98 | 37.62 |
| 348 | 56 | 13.86 | 37.62 |
| 403 | 56 | 8.91 | 37.62 |
| 22 | 57 | 1.98 | 46.62 |
| 33 | 57 | 13.86 | 46.62 |
| 88 | 57 | 17.91 | 46.62 |
| 217 | 57 | 1.98 | 46.62 |
| 240 | 57 | 3.96 | 46.62 |
| 262 | 57 | 5.94 | 46.62 |
| 314 | 57 | 0.99 | 46.62 |
| 120 | 58 | 1.98 | 38.62 |
| 131 | 58 | 13.86 | 38.62 |
| 186 | 58 | 8.91 | 38.62 |
| 315 | 58 | 1.98 | 38.62 |
| 338 | 58 | 3.96 | 38.62 |
| 360 | 58 | 5.94 | 38.62 |
| 412 | 58 | 1.99 | 38.62 |
| 23 | 59 | 3.96 | 36.64 |
| 45 | 59 | 5.94 | 36.64 |
| 97 | 59 | 1.99 | 36.64 |
| 218 | 59 | 1.98 | 36.64 |
| 229 | 59 | 13.86 | 36.64 |
| 284 | 59 | 8.91 | 36.64 |
All 412 rows remain. Each customer total repeats on that customer’s invoice rows. Summing CustomerTotal again would count the same spending multiple times.
All three panels use the same 412 invoices. Highlight customer 1 to compare their seven source invoices, one summary row and seven annotated window rows. Do not sum a repeated customer-total column as if it were an invoice amount.
Windows see rows surviving the current WHERE and grouping. Filter to one customer first and an unpartitioned total means that customer’s total. Group first and the window sees grouped rows; it does not reach back into every raw table row.
OVER() and PARTITION BY define the population
SUM(Total) OVER () uses one partition containing the current result. It is useful for shares of a grand total. PARTITION BY CustomerId divides input into customer-specific sets, restarting the calculation for each customer. Partitioning removes no rows.
OVER() without a partition
What fraction of total revenue is each invoice?
SELECT InvoiceId, Total,
ROUND(100.0 * Total / SUM(Total) OVER (), 2) AS PercentOfRevenue
FROM Invoice ORDER BY InvoiceId;Show all 412 recordsShow first 10 records
| InvoiceId | Total | PercentOfRevenue |
|---|---|---|
| 1 | 1.98 | 0.09 |
| 2 | 3.96 | 0.17 |
| 3 | 5.94 | 0.26 |
| 4 | 8.91 | 0.38 |
| 5 | 13.86 | 0.6 |
| 6 | 0.99 | 0.04 |
| 7 | 1.98 | 0.09 |
| 8 | 1.98 | 0.09 |
| 9 | 3.96 | 0.17 |
| 10 | 5.94 | 0.26 |
| 11 | 8.91 | 0.38 |
| 12 | 13.86 | 0.6 |
| 13 | 0.99 | 0.04 |
| 14 | 1.98 | 0.09 |
| 15 | 1.98 | 0.09 |
| 16 | 3.96 | 0.17 |
| 17 | 5.94 | 0.26 |
| 18 | 8.91 | 0.38 |
| 19 | 13.86 | 0.6 |
| 20 | 0.99 | 0.04 |
| 21 | 1.98 | 0.09 |
| 22 | 1.98 | 0.09 |
| 23 | 3.96 | 0.17 |
| 24 | 5.94 | 0.26 |
| 25 | 8.91 | 0.38 |
| 26 | 13.86 | 0.6 |
| 27 | 0.99 | 0.04 |
| 28 | 1.98 | 0.09 |
| 29 | 1.98 | 0.09 |
| 30 | 3.96 | 0.17 |
| 31 | 5.94 | 0.26 |
| 32 | 8.91 | 0.38 |
| 33 | 13.86 | 0.6 |
| 34 | 0.99 | 0.04 |
| 35 | 1.98 | 0.09 |
| 36 | 1.98 | 0.09 |
| 37 | 3.96 | 0.17 |
| 38 | 5.94 | 0.26 |
| 39 | 8.91 | 0.38 |
| 40 | 13.86 | 0.6 |
| 41 | 0.99 | 0.04 |
| 42 | 1.98 | 0.09 |
| 43 | 1.98 | 0.09 |
| 44 | 3.96 | 0.17 |
| 45 | 5.94 | 0.26 |
| 46 | 8.91 | 0.38 |
| 47 | 13.86 | 0.6 |
| 48 | 0.99 | 0.04 |
| 49 | 1.98 | 0.09 |
| 50 | 1.98 | 0.09 |
| 51 | 3.96 | 0.17 |
| 52 | 5.94 | 0.26 |
| 53 | 8.91 | 0.38 |
| 54 | 13.86 | 0.6 |
| 55 | 0.99 | 0.04 |
| 56 | 1.98 | 0.09 |
| 57 | 1.98 | 0.09 |
| 58 | 3.96 | 0.17 |
| 59 | 5.94 | 0.26 |
| 60 | 8.91 | 0.38 |
| 61 | 13.86 | 0.6 |
| 62 | 0.99 | 0.04 |
| 63 | 1.98 | 0.09 |
| 64 | 1.98 | 0.09 |
| 65 | 3.96 | 0.17 |
| 66 | 5.94 | 0.26 |
| 67 | 8.91 | 0.38 |
| 68 | 13.86 | 0.6 |
| 69 | 0.99 | 0.04 |
| 70 | 1.98 | 0.09 |
| 71 | 1.98 | 0.09 |
| 72 | 3.96 | 0.17 |
| 73 | 5.94 | 0.26 |
| 74 | 8.91 | 0.38 |
| 75 | 13.86 | 0.6 |
| 76 | 0.99 | 0.04 |
| 77 | 1.98 | 0.09 |
| 78 | 1.98 | 0.09 |
| 79 | 3.96 | 0.17 |
| 80 | 5.94 | 0.26 |
| 81 | 8.91 | 0.38 |
| 82 | 13.86 | 0.6 |
| 83 | 0.99 | 0.04 |
| 84 | 1.98 | 0.09 |
| 85 | 1.98 | 0.09 |
| 86 | 3.96 | 0.17 |
| 87 | 6.94 | 0.3 |
| 88 | 17.91 | 0.77 |
| 89 | 18.86 | 0.81 |
| 90 | 0.99 | 0.04 |
| 91 | 1.98 | 0.09 |
| 92 | 1.98 | 0.09 |
| 93 | 3.96 | 0.17 |
| 94 | 5.94 | 0.26 |
| 95 | 8.91 | 0.38 |
| 96 | 21.86 | 0.94 |
| 97 | 1.99 | 0.09 |
| 98 | 3.98 | 0.17 |
| 99 | 3.98 | 0.17 |
| 100 | 3.96 | 0.17 |
| 101 | 5.94 | 0.26 |
| 102 | 9.91 | 0.43 |
| 103 | 15.86 | 0.68 |
| 104 | 0.99 | 0.04 |
| 105 | 1.98 | 0.09 |
| 106 | 1.98 | 0.09 |
| 107 | 3.96 | 0.17 |
| 108 | 5.94 | 0.26 |
| 109 | 8.91 | 0.38 |
| 110 | 13.86 | 0.6 |
| 111 | 0.99 | 0.04 |
| 112 | 1.98 | 0.09 |
| 113 | 1.98 | 0.09 |
| 114 | 3.96 | 0.17 |
| 115 | 5.94 | 0.26 |
| 116 | 8.91 | 0.38 |
| 117 | 13.86 | 0.6 |
| 118 | 0.99 | 0.04 |
| 119 | 1.98 | 0.09 |
| 120 | 1.98 | 0.09 |
| 121 | 3.96 | 0.17 |
| 122 | 5.94 | 0.26 |
| 123 | 8.91 | 0.38 |
| 124 | 13.86 | 0.6 |
| 125 | 0.99 | 0.04 |
| 126 | 1.98 | 0.09 |
| 127 | 1.98 | 0.09 |
| 128 | 3.96 | 0.17 |
| 129 | 5.94 | 0.26 |
| 130 | 8.91 | 0.38 |
| 131 | 13.86 | 0.6 |
| 132 | 0.99 | 0.04 |
| 133 | 1.98 | 0.09 |
| 134 | 1.98 | 0.09 |
| 135 | 3.96 | 0.17 |
| 136 | 5.94 | 0.26 |
| 137 | 8.91 | 0.38 |
| 138 | 13.86 | 0.6 |
| 139 | 0.99 | 0.04 |
| 140 | 1.98 | 0.09 |
| 141 | 1.98 | 0.09 |
| 142 | 3.96 | 0.17 |
| 143 | 5.94 | 0.26 |
| 144 | 8.91 | 0.38 |
| 145 | 13.86 | 0.6 |
| 146 | 0.99 | 0.04 |
| 147 | 1.98 | 0.09 |
| 148 | 1.98 | 0.09 |
| 149 | 3.96 | 0.17 |
| 150 | 5.94 | 0.26 |
| 151 | 8.91 | 0.38 |
| 152 | 13.86 | 0.6 |
| 153 | 0.99 | 0.04 |
| 154 | 1.98 | 0.09 |
| 155 | 1.98 | 0.09 |
| 156 | 3.96 | 0.17 |
| 157 | 5.94 | 0.26 |
| 158 | 8.91 | 0.38 |
| 159 | 13.86 | 0.6 |
| 160 | 0.99 | 0.04 |
| 161 | 1.98 | 0.09 |
| 162 | 1.98 | 0.09 |
| 163 | 3.96 | 0.17 |
| 164 | 5.94 | 0.26 |
| 165 | 8.91 | 0.38 |
| 166 | 13.86 | 0.6 |
| 167 | 0.99 | 0.04 |
| 168 | 1.98 | 0.09 |
| 169 | 1.98 | 0.09 |
| 170 | 3.96 | 0.17 |
| 171 | 5.94 | 0.26 |
| 172 | 8.91 | 0.38 |
| 173 | 13.86 | 0.6 |
| 174 | 0.99 | 0.04 |
| 175 | 1.98 | 0.09 |
| 176 | 1.98 | 0.09 |
| 177 | 3.96 | 0.17 |
| 178 | 5.94 | 0.26 |
| 179 | 8.91 | 0.38 |
| 180 | 13.86 | 0.6 |
| 181 | 0.99 | 0.04 |
| 182 | 1.98 | 0.09 |
| 183 | 1.98 | 0.09 |
| 184 | 3.96 | 0.17 |
| 185 | 5.94 | 0.26 |
| 186 | 8.91 | 0.38 |
| 187 | 13.86 | 0.6 |
| 188 | 0.99 | 0.04 |
| 189 | 1.98 | 0.09 |
| 190 | 1.98 | 0.09 |
| 191 | 3.96 | 0.17 |
| 192 | 5.94 | 0.26 |
| 193 | 14.91 | 0.64 |
| 194 | 21.86 | 0.94 |
| 195 | 0.99 | 0.04 |
| 196 | 1.98 | 0.09 |
| 197 | 1.98 | 0.09 |
| 198 | 3.96 | 0.17 |
| 199 | 5.94 | 0.26 |
| 200 | 8.91 | 0.38 |
| 201 | 18.86 | 0.81 |
| 202 | 1.99 | 0.09 |
| 203 | 2.98 | 0.13 |
| 204 | 3.98 | 0.17 |
| 205 | 7.96 | 0.34 |
| 206 | 8.94 | 0.38 |
| 207 | 8.91 | 0.38 |
| 208 | 15.86 | 0.68 |
| 209 | 0.99 | 0.04 |
| 210 | 1.98 | 0.09 |
| 211 | 1.98 | 0.09 |
| 212 | 3.96 | 0.17 |
| 213 | 5.94 | 0.26 |
| 214 | 8.91 | 0.38 |
| 215 | 13.86 | 0.6 |
| 216 | 0.99 | 0.04 |
| 217 | 1.98 | 0.09 |
| 218 | 1.98 | 0.09 |
| 219 | 3.96 | 0.17 |
| 220 | 5.94 | 0.26 |
| 221 | 8.91 | 0.38 |
| 222 | 13.86 | 0.6 |
| 223 | 0.99 | 0.04 |
| 224 | 1.98 | 0.09 |
| 225 | 1.98 | 0.09 |
| 226 | 3.96 | 0.17 |
| 227 | 5.94 | 0.26 |
| 228 | 8.91 | 0.38 |
| 229 | 13.86 | 0.6 |
| 230 | 0.99 | 0.04 |
| 231 | 1.98 | 0.09 |
| 232 | 1.98 | 0.09 |
| 233 | 3.96 | 0.17 |
| 234 | 5.94 | 0.26 |
| 235 | 8.91 | 0.38 |
| 236 | 13.86 | 0.6 |
| 237 | 0.99 | 0.04 |
| 238 | 1.98 | 0.09 |
| 239 | 1.98 | 0.09 |
| 240 | 3.96 | 0.17 |
| 241 | 5.94 | 0.26 |
| 242 | 8.91 | 0.38 |
| 243 | 13.86 | 0.6 |
| 244 | 0.99 | 0.04 |
| 245 | 1.98 | 0.09 |
| 246 | 1.98 | 0.09 |
| 247 | 3.96 | 0.17 |
| 248 | 5.94 | 0.26 |
| 249 | 8.91 | 0.38 |
| 250 | 13.86 | 0.6 |
| 251 | 0.99 | 0.04 |
| 252 | 1.98 | 0.09 |
| 253 | 1.98 | 0.09 |
| 254 | 3.96 | 0.17 |
| 255 | 5.94 | 0.26 |
| 256 | 8.91 | 0.38 |
| 257 | 13.86 | 0.6 |
| 258 | 0.99 | 0.04 |
| 259 | 1.98 | 0.09 |
| 260 | 1.98 | 0.09 |
| 261 | 3.96 | 0.17 |
| 262 | 5.94 | 0.26 |
| 263 | 8.91 | 0.38 |
| 264 | 13.86 | 0.6 |
| 265 | 0.99 | 0.04 |
| 266 | 1.98 | 0.09 |
| 267 | 1.98 | 0.09 |
| 268 | 3.96 | 0.17 |
| 269 | 5.94 | 0.26 |
| 270 | 8.91 | 0.38 |
| 271 | 13.86 | 0.6 |
| 272 | 0.99 | 0.04 |
| 273 | 1.98 | 0.09 |
| 274 | 1.98 | 0.09 |
| 275 | 3.96 | 0.17 |
| 276 | 5.94 | 0.26 |
| 277 | 8.91 | 0.38 |
| 278 | 13.86 | 0.6 |
| 279 | 0.99 | 0.04 |
| 280 | 1.98 | 0.09 |
| 281 | 1.98 | 0.09 |
| 282 | 3.96 | 0.17 |
| 283 | 5.94 | 0.26 |
| 284 | 8.91 | 0.38 |
| 285 | 13.86 | 0.6 |
| 286 | 0.99 | 0.04 |
| 287 | 1.98 | 0.09 |
| 288 | 1.98 | 0.09 |
| 289 | 3.96 | 0.17 |
| 290 | 5.94 | 0.26 |
| 291 | 8.91 | 0.38 |
| 292 | 13.86 | 0.6 |
| 293 | 0.99 | 0.04 |
| 294 | 1.98 | 0.09 |
| 295 | 1.98 | 0.09 |
| 296 | 3.96 | 0.17 |
| 297 | 5.94 | 0.26 |
| 298 | 10.91 | 0.47 |
| 299 | 23.86 | 1.02 |
| 300 | 0.99 | 0.04 |
| 301 | 1.98 | 0.09 |
| 302 | 1.98 | 0.09 |
| 303 | 3.96 | 0.17 |
| 304 | 5.94 | 0.26 |
| 305 | 8.91 | 0.38 |
| 306 | 16.86 | 0.72 |
| 307 | 1.99 | 0.09 |
| 308 | 3.98 | 0.17 |
| 309 | 3.98 | 0.17 |
| 310 | 7.96 | 0.34 |
| 311 | 11.94 | 0.51 |
| 312 | 10.91 | 0.47 |
| 313 | 16.86 | 0.72 |
| 314 | 0.99 | 0.04 |
| 315 | 1.98 | 0.09 |
| 316 | 1.98 | 0.09 |
| 317 | 3.96 | 0.17 |
| 318 | 5.94 | 0.26 |
| 319 | 8.91 | 0.38 |
| 320 | 13.86 | 0.6 |
| 321 | 0.99 | 0.04 |
| 322 | 1.98 | 0.09 |
| 323 | 1.98 | 0.09 |
| 324 | 3.96 | 0.17 |
| 325 | 5.94 | 0.26 |
| 326 | 8.91 | 0.38 |
| 327 | 13.86 | 0.6 |
| 328 | 0.99 | 0.04 |
| 329 | 1.98 | 0.09 |
| 330 | 1.98 | 0.09 |
| 331 | 3.96 | 0.17 |
| 332 | 5.94 | 0.26 |
| 333 | 8.91 | 0.38 |
| 334 | 13.86 | 0.6 |
| 335 | 0.99 | 0.04 |
| 336 | 1.98 | 0.09 |
| 337 | 1.98 | 0.09 |
| 338 | 3.96 | 0.17 |
| 339 | 5.94 | 0.26 |
| 340 | 8.91 | 0.38 |
| 341 | 13.86 | 0.6 |
| 342 | 0.99 | 0.04 |
| 343 | 1.98 | 0.09 |
| 344 | 1.98 | 0.09 |
| 345 | 3.96 | 0.17 |
| 346 | 5.94 | 0.26 |
| 347 | 8.91 | 0.38 |
| 348 | 13.86 | 0.6 |
| 349 | 0.99 | 0.04 |
| 350 | 1.98 | 0.09 |
| 351 | 1.98 | 0.09 |
| 352 | 3.96 | 0.17 |
| 353 | 5.94 | 0.26 |
| 354 | 8.91 | 0.38 |
| 355 | 13.86 | 0.6 |
| 356 | 0.99 | 0.04 |
| 357 | 1.98 | 0.09 |
| 358 | 1.98 | 0.09 |
| 359 | 3.96 | 0.17 |
| 360 | 5.94 | 0.26 |
| 361 | 8.91 | 0.38 |
| 362 | 13.86 | 0.6 |
| 363 | 0.99 | 0.04 |
| 364 | 1.98 | 0.09 |
| 365 | 1.98 | 0.09 |
| 366 | 3.96 | 0.17 |
| 367 | 5.94 | 0.26 |
| 368 | 8.91 | 0.38 |
| 369 | 13.86 | 0.6 |
| 370 | 0.99 | 0.04 |
| 371 | 1.98 | 0.09 |
| 372 | 1.98 | 0.09 |
| 373 | 3.96 | 0.17 |
| 374 | 5.94 | 0.26 |
| 375 | 8.91 | 0.38 |
| 376 | 13.86 | 0.6 |
| 377 | 0.99 | 0.04 |
| 378 | 1.98 | 0.09 |
| 379 | 1.98 | 0.09 |
| 380 | 3.96 | 0.17 |
| 381 | 5.94 | 0.26 |
| 382 | 8.91 | 0.38 |
| 383 | 13.86 | 0.6 |
| 384 | 0.99 | 0.04 |
| 385 | 1.98 | 0.09 |
| 386 | 1.98 | 0.09 |
| 387 | 3.96 | 0.17 |
| 388 | 5.94 | 0.26 |
| 389 | 8.91 | 0.38 |
| 390 | 13.86 | 0.6 |
| 391 | 0.99 | 0.04 |
| 392 | 1.98 | 0.09 |
| 393 | 1.98 | 0.09 |
| 394 | 3.96 | 0.17 |
| 395 | 5.94 | 0.26 |
| 396 | 8.91 | 0.38 |
| 397 | 13.86 | 0.6 |
| 398 | 0.99 | 0.04 |
| 399 | 1.98 | 0.09 |
| 400 | 1.98 | 0.09 |
| 401 | 3.96 | 0.17 |
| 402 | 5.94 | 0.26 |
| 403 | 8.91 | 0.38 |
| 404 | 25.86 | 1.11 |
| 405 | 0.99 | 0.04 |
| 406 | 1.98 | 0.09 |
| 407 | 1.98 | 0.09 |
| 408 | 3.96 | 0.17 |
| 409 | 5.94 | 0.26 |
| 410 | 8.91 | 0.38 |
| 411 | 13.86 | 0.6 |
| 412 | 1.99 | 0.09 |
Empty OVER() treats all 412 rows as one partition. 100.0 avoids integer division on engines where integer / integer truncates. Rounded percentages need not sum to exactly 100.
Window output
Show every invoice alongside its customer’s total.
SELECT InvoiceId, CustomerId, Total,
ROUND(SUM(Total) OVER (PARTITION BY CustomerId), 2) AS CustomerTotal
FROM Invoice
ORDER BY CustomerId, InvoiceDate, InvoiceId;Expected results (412 rows)
Show all 412 recordsShow first 10 records
| InvoiceId | CustomerId | Total | CustomerTotal |
|---|---|---|---|
| 98 | 1 | 3.98 | 39.62 |
| 121 | 1 | 3.96 | 39.62 |
| 143 | 1 | 5.94 | 39.62 |
| 195 | 1 | 0.99 | 39.62 |
| 316 | 1 | 1.98 | 39.62 |
| 327 | 1 | 13.86 | 39.62 |
| 382 | 1 | 8.91 | 39.62 |
| 1 | 2 | 1.98 | 37.62 |
| 12 | 2 | 13.86 | 37.62 |
| 67 | 2 | 8.91 | 37.62 |
| 196 | 2 | 1.98 | 37.62 |
| 219 | 2 | 3.96 | 37.62 |
| 241 | 2 | 5.94 | 37.62 |
| 293 | 2 | 0.99 | 37.62 |
| 99 | 3 | 3.98 | 39.62 |
| 110 | 3 | 13.86 | 39.62 |
| 165 | 3 | 8.91 | 39.62 |
| 294 | 3 | 1.98 | 39.62 |
| 317 | 3 | 3.96 | 39.62 |
| 339 | 3 | 5.94 | 39.62 |
| 391 | 3 | 0.99 | 39.62 |
| 2 | 4 | 3.96 | 39.62 |
| 24 | 4 | 5.94 | 39.62 |
| 76 | 4 | 0.99 | 39.62 |
| 197 | 4 | 1.98 | 39.62 |
| 208 | 4 | 15.86 | 39.62 |
| 263 | 4 | 8.91 | 39.62 |
| 392 | 4 | 1.98 | 39.62 |
| 77 | 5 | 1.98 | 40.62 |
| 100 | 5 | 3.96 | 40.62 |
| 122 | 5 | 5.94 | 40.62 |
| 174 | 5 | 0.99 | 40.62 |
| 295 | 5 | 1.98 | 40.62 |
| 306 | 5 | 16.86 | 40.62 |
| 361 | 5 | 8.91 | 40.62 |
| 46 | 6 | 8.91 | 49.62 |
| 175 | 6 | 1.98 | 49.62 |
| 198 | 6 | 3.96 | 49.62 |
| 220 | 6 | 5.94 | 49.62 |
| 272 | 6 | 0.99 | 49.62 |
| 393 | 6 | 1.98 | 49.62 |
| 404 | 6 | 25.86 | 49.62 |
| 78 | 7 | 1.98 | 42.62 |
| 89 | 7 | 18.86 | 42.62 |
| 144 | 7 | 8.91 | 42.62 |
| 273 | 7 | 1.98 | 42.62 |
| 296 | 7 | 3.96 | 42.62 |
| 318 | 7 | 5.94 | 42.62 |
| 370 | 7 | 0.99 | 42.62 |
| 3 | 8 | 5.94 | 37.62 |
| 55 | 8 | 0.99 | 37.62 |
| 176 | 8 | 1.98 | 37.62 |
| 187 | 8 | 13.86 | 37.62 |
| 242 | 8 | 8.91 | 37.62 |
| 371 | 8 | 1.98 | 37.62 |
| 394 | 8 | 3.96 | 37.62 |
| 56 | 9 | 1.98 | 37.62 |
| 79 | 9 | 3.96 | 37.62 |
| 101 | 9 | 5.94 | 37.62 |
| 153 | 9 | 0.99 | 37.62 |
| 274 | 9 | 1.98 | 37.62 |
| 285 | 9 | 13.86 | 37.62 |
| 340 | 9 | 8.91 | 37.62 |
| 25 | 10 | 8.91 | 37.62 |
| 154 | 10 | 1.98 | 37.62 |
| 177 | 10 | 3.96 | 37.62 |
| 199 | 10 | 5.94 | 37.62 |
| 251 | 10 | 0.99 | 37.62 |
| 372 | 10 | 1.98 | 37.62 |
| 383 | 10 | 13.86 | 37.62 |
| 57 | 11 | 1.98 | 37.62 |
| 68 | 11 | 13.86 | 37.62 |
| 123 | 11 | 8.91 | 37.62 |
| 252 | 11 | 1.98 | 37.62 |
| 275 | 11 | 3.96 | 37.62 |
| 297 | 11 | 5.94 | 37.62 |
| 349 | 11 | 0.99 | 37.62 |
| 34 | 12 | 0.99 | 37.62 |
| 155 | 12 | 1.98 | 37.62 |
| 166 | 12 | 13.86 | 37.62 |
| 221 | 12 | 8.91 | 37.62 |
| 350 | 12 | 1.98 | 37.62 |
| 373 | 12 | 3.96 | 37.62 |
| 395 | 12 | 5.94 | 37.62 |
| 35 | 13 | 1.98 | 37.62 |
| 58 | 13 | 3.96 | 37.62 |
| 80 | 13 | 5.94 | 37.62 |
| 132 | 13 | 0.99 | 37.62 |
| 253 | 13 | 1.98 | 37.62 |
| 264 | 13 | 13.86 | 37.62 |
| 319 | 13 | 8.91 | 37.62 |
| 4 | 14 | 8.91 | 37.62 |
| 133 | 14 | 1.98 | 37.62 |
| 156 | 14 | 3.96 | 37.62 |
| 178 | 14 | 5.94 | 37.62 |
| 230 | 14 | 0.99 | 37.62 |
| 351 | 14 | 1.98 | 37.62 |
| 362 | 14 | 13.86 | 37.62 |
| 36 | 15 | 1.98 | 38.62 |
| 47 | 15 | 13.86 | 38.62 |
| 102 | 15 | 9.91 | 38.62 |
| 231 | 15 | 1.98 | 38.62 |
| 254 | 15 | 3.96 | 38.62 |
| 276 | 15 | 5.94 | 38.62 |
| 328 | 15 | 0.99 | 38.62 |
| 13 | 16 | 0.99 | 37.62 |
| 134 | 16 | 1.98 | 37.62 |
| 145 | 16 | 13.86 | 37.62 |
| 200 | 16 | 8.91 | 37.62 |
| 329 | 16 | 1.98 | 37.62 |
| 352 | 16 | 3.96 | 37.62 |
| 374 | 16 | 5.94 | 37.62 |
| 14 | 17 | 1.98 | 39.62 |
| 37 | 17 | 3.96 | 39.62 |
| 59 | 17 | 5.94 | 39.62 |
| 111 | 17 | 0.99 | 39.62 |
| 232 | 17 | 1.98 | 39.62 |
| 243 | 17 | 13.86 | 39.62 |
| 298 | 17 | 10.91 | 39.62 |
| 112 | 18 | 1.98 | 37.62 |
| 135 | 18 | 3.96 | 37.62 |
| 157 | 18 | 5.94 | 37.62 |
| 209 | 18 | 0.99 | 37.62 |
| 330 | 18 | 1.98 | 37.62 |
| 341 | 18 | 13.86 | 37.62 |
| 396 | 18 | 8.91 | 37.62 |
| 15 | 19 | 1.98 | 38.62 |
| 26 | 19 | 13.86 | 38.62 |
| 81 | 19 | 8.91 | 38.62 |
| 210 | 19 | 1.98 | 38.62 |
| 233 | 19 | 3.96 | 38.62 |
| 255 | 19 | 5.94 | 38.62 |
| 307 | 19 | 1.99 | 38.62 |
| 113 | 20 | 1.98 | 39.62 |
| 124 | 20 | 13.86 | 39.62 |
| 179 | 20 | 8.91 | 39.62 |
| 308 | 20 | 3.98 | 39.62 |
| 331 | 20 | 3.96 | 39.62 |
| 353 | 20 | 5.94 | 39.62 |
| 405 | 20 | 0.99 | 39.62 |
| 16 | 21 | 3.96 | 37.62 |
| 38 | 21 | 5.94 | 37.62 |
| 90 | 21 | 0.99 | 37.62 |
| 211 | 21 | 1.98 | 37.62 |
| 222 | 21 | 13.86 | 37.62 |
| 277 | 21 | 8.91 | 37.62 |
| 406 | 21 | 1.98 | 37.62 |
| 91 | 22 | 1.98 | 39.62 |
| 114 | 22 | 3.96 | 39.62 |
| 136 | 22 | 5.94 | 39.62 |
| 188 | 22 | 0.99 | 39.62 |
| 309 | 22 | 3.98 | 39.62 |
| 320 | 22 | 13.86 | 39.62 |
| 375 | 22 | 8.91 | 39.62 |
| 5 | 23 | 13.86 | 37.62 |
| 60 | 23 | 8.91 | 37.62 |
| 189 | 23 | 1.98 | 37.62 |
| 212 | 23 | 3.96 | 37.62 |
| 234 | 23 | 5.94 | 37.62 |
| 286 | 23 | 0.99 | 37.62 |
| 407 | 23 | 1.98 | 37.62 |
| 92 | 24 | 1.98 | 43.62 |
| 103 | 24 | 15.86 | 43.62 |
| 158 | 24 | 8.91 | 43.62 |
| 287 | 24 | 1.98 | 43.62 |
| 310 | 24 | 7.96 | 43.62 |
| 332 | 24 | 5.94 | 43.62 |
| 384 | 24 | 0.99 | 43.62 |
| 17 | 25 | 5.94 | 42.62 |
| 69 | 25 | 0.99 | 42.62 |
| 190 | 25 | 1.98 | 42.62 |
| 201 | 25 | 18.86 | 42.62 |
| 256 | 25 | 8.91 | 42.62 |
| 385 | 25 | 1.98 | 42.62 |
| 408 | 25 | 3.96 | 42.62 |
| 70 | 26 | 1.98 | 47.62 |
| 93 | 26 | 3.96 | 47.62 |
| 115 | 26 | 5.94 | 47.62 |
| 167 | 26 | 0.99 | 47.62 |
| 288 | 26 | 1.98 | 47.62 |
| 299 | 26 | 23.86 | 47.62 |
| 354 | 26 | 8.91 | 47.62 |
| 39 | 27 | 8.91 | 37.62 |
| 168 | 27 | 1.98 | 37.62 |
| 191 | 27 | 3.96 | 37.62 |
| 213 | 27 | 5.94 | 37.62 |
| 265 | 27 | 0.99 | 37.62 |
| 386 | 27 | 1.98 | 37.62 |
| 397 | 27 | 13.86 | 37.62 |
| 71 | 28 | 1.98 | 43.62 |
| 82 | 28 | 13.86 | 43.62 |
| 137 | 28 | 8.91 | 43.62 |
| 266 | 28 | 1.98 | 43.62 |
| 289 | 28 | 3.96 | 43.62 |
| 311 | 28 | 11.94 | 43.62 |
| 363 | 28 | 0.99 | 43.62 |
| 48 | 29 | 0.99 | 37.62 |
| 169 | 29 | 1.98 | 37.62 |
| 180 | 29 | 13.86 | 37.62 |
| 235 | 29 | 8.91 | 37.62 |
| 364 | 29 | 1.98 | 37.62 |
| 387 | 29 | 3.96 | 37.62 |
| 409 | 29 | 5.94 | 37.62 |
| 49 | 30 | 1.98 | 37.62 |
| 72 | 30 | 3.96 | 37.62 |
| 94 | 30 | 5.94 | 37.62 |
| 146 | 30 | 0.99 | 37.62 |
| 267 | 30 | 1.98 | 37.62 |
| 278 | 30 | 13.86 | 37.62 |
| 333 | 30 | 8.91 | 37.62 |
| 18 | 31 | 8.91 | 37.62 |
| 147 | 31 | 1.98 | 37.62 |
| 170 | 31 | 3.96 | 37.62 |
| 192 | 31 | 5.94 | 37.62 |
| 244 | 31 | 0.99 | 37.62 |
| 365 | 31 | 1.98 | 37.62 |
| 376 | 31 | 13.86 | 37.62 |
| 50 | 32 | 1.98 | 37.62 |
| 61 | 32 | 13.86 | 37.62 |
| 116 | 32 | 8.91 | 37.62 |
| 245 | 32 | 1.98 | 37.62 |
| 268 | 32 | 3.96 | 37.62 |
| 290 | 32 | 5.94 | 37.62 |
| 342 | 32 | 0.99 | 37.62 |
| 27 | 33 | 0.99 | 37.62 |
| 148 | 33 | 1.98 | 37.62 |
| 159 | 33 | 13.86 | 37.62 |
| 214 | 33 | 8.91 | 37.62 |
| 343 | 33 | 1.98 | 37.62 |
| 366 | 33 | 3.96 | 37.62 |
| 388 | 33 | 5.94 | 37.62 |
| 28 | 34 | 1.98 | 39.62 |
| 51 | 34 | 3.96 | 39.62 |
| 73 | 34 | 5.94 | 39.62 |
| 125 | 34 | 0.99 | 39.62 |
| 246 | 34 | 1.98 | 39.62 |
| 257 | 34 | 13.86 | 39.62 |
| 312 | 34 | 10.91 | 39.62 |
| 126 | 35 | 1.98 | 37.62 |
| 149 | 35 | 3.96 | 37.62 |
| 171 | 35 | 5.94 | 37.62 |
| 223 | 35 | 0.99 | 37.62 |
| 344 | 35 | 1.98 | 37.62 |
| 355 | 35 | 13.86 | 37.62 |
| 410 | 35 | 8.91 | 37.62 |
| 29 | 36 | 1.98 | 37.62 |
| 40 | 36 | 13.86 | 37.62 |
| 95 | 36 | 8.91 | 37.62 |
| 224 | 36 | 1.98 | 37.62 |
| 247 | 36 | 3.96 | 37.62 |
| 269 | 36 | 5.94 | 37.62 |
| 321 | 36 | 0.99 | 37.62 |
| 6 | 37 | 0.99 | 43.62 |
| 127 | 37 | 1.98 | 43.62 |
| 138 | 37 | 13.86 | 43.62 |
| 193 | 37 | 14.91 | 43.62 |
| 322 | 37 | 1.98 | 43.62 |
| 345 | 37 | 3.96 | 43.62 |
| 367 | 37 | 5.94 | 43.62 |
| 7 | 38 | 1.98 | 37.62 |
| 30 | 38 | 3.96 | 37.62 |
| 52 | 38 | 5.94 | 37.62 |
| 104 | 38 | 0.99 | 37.62 |
| 225 | 38 | 1.98 | 37.62 |
| 236 | 38 | 13.86 | 37.62 |
| 291 | 38 | 8.91 | 37.62 |
| 105 | 39 | 1.98 | 38.62 |
| 128 | 39 | 3.96 | 38.62 |
| 150 | 39 | 5.94 | 38.62 |
| 202 | 39 | 1.99 | 38.62 |
| 323 | 39 | 1.98 | 38.62 |
| 334 | 39 | 13.86 | 38.62 |
| 389 | 39 | 8.91 | 38.62 |
| 8 | 40 | 1.98 | 38.62 |
| 19 | 40 | 13.86 | 38.62 |
| 74 | 40 | 8.91 | 38.62 |
| 203 | 40 | 2.98 | 38.62 |
| 226 | 40 | 3.96 | 38.62 |
| 248 | 40 | 5.94 | 38.62 |
| 300 | 40 | 0.99 | 38.62 |
| 106 | 41 | 1.98 | 37.62 |
| 117 | 41 | 13.86 | 37.62 |
| 172 | 41 | 8.91 | 37.62 |
| 301 | 41 | 1.98 | 37.62 |
| 324 | 41 | 3.96 | 37.62 |
| 346 | 41 | 5.94 | 37.62 |
| 398 | 41 | 0.99 | 37.62 |
| 9 | 42 | 3.96 | 39.62 |
| 31 | 42 | 5.94 | 39.62 |
| 83 | 42 | 0.99 | 39.62 |
| 204 | 42 | 3.98 | 39.62 |
| 215 | 42 | 13.86 | 39.62 |
| 270 | 42 | 8.91 | 39.62 |
| 399 | 42 | 1.98 | 39.62 |
| 84 | 43 | 1.98 | 40.62 |
| 107 | 43 | 3.96 | 40.62 |
| 129 | 43 | 5.94 | 40.62 |
| 181 | 43 | 0.99 | 40.62 |
| 302 | 43 | 1.98 | 40.62 |
| 313 | 43 | 16.86 | 40.62 |
| 368 | 43 | 8.91 | 40.62 |
| 53 | 44 | 8.91 | 41.62 |
| 182 | 44 | 1.98 | 41.62 |
| 205 | 44 | 7.96 | 41.62 |
| 227 | 44 | 5.94 | 41.62 |
| 279 | 44 | 0.99 | 41.62 |
| 400 | 44 | 1.98 | 41.62 |
| 411 | 44 | 13.86 | 41.62 |
| 85 | 45 | 1.98 | 45.62 |
| 96 | 45 | 21.86 | 45.62 |
| 151 | 45 | 8.91 | 45.62 |
| 280 | 45 | 1.98 | 45.62 |
| 303 | 45 | 3.96 | 45.62 |
| 325 | 45 | 5.94 | 45.62 |
| 377 | 45 | 0.99 | 45.62 |
| 10 | 46 | 5.94 | 45.62 |
| 62 | 46 | 0.99 | 45.62 |
| 183 | 46 | 1.98 | 45.62 |
| 194 | 46 | 21.86 | 45.62 |
| 249 | 46 | 8.91 | 45.62 |
| 378 | 46 | 1.98 | 45.62 |
| 401 | 46 | 3.96 | 45.62 |
| 63 | 47 | 1.98 | 37.62 |
| 86 | 47 | 3.96 | 37.62 |
| 108 | 47 | 5.94 | 37.62 |
| 160 | 47 | 0.99 | 37.62 |
| 281 | 47 | 1.98 | 37.62 |
| 292 | 47 | 13.86 | 37.62 |
| 347 | 47 | 8.91 | 37.62 |
| 32 | 48 | 8.91 | 40.62 |
| 161 | 48 | 1.98 | 40.62 |
| 184 | 48 | 3.96 | 40.62 |
| 206 | 48 | 8.94 | 40.62 |
| 258 | 48 | 0.99 | 40.62 |
| 379 | 48 | 1.98 | 40.62 |
| 390 | 48 | 13.86 | 40.62 |
| 64 | 49 | 1.98 | 37.62 |
| 75 | 49 | 13.86 | 37.62 |
| 130 | 49 | 8.91 | 37.62 |
| 259 | 49 | 1.98 | 37.62 |
| 282 | 49 | 3.96 | 37.62 |
| 304 | 49 | 5.94 | 37.62 |
| 356 | 49 | 0.99 | 37.62 |
| 41 | 50 | 0.99 | 37.62 |
| 162 | 50 | 1.98 | 37.62 |
| 173 | 50 | 13.86 | 37.62 |
| 228 | 50 | 8.91 | 37.62 |
| 357 | 50 | 1.98 | 37.62 |
| 380 | 50 | 3.96 | 37.62 |
| 402 | 50 | 5.94 | 37.62 |
| 42 | 51 | 1.98 | 38.62 |
| 65 | 51 | 3.96 | 38.62 |
| 87 | 51 | 6.94 | 38.62 |
| 139 | 51 | 0.99 | 38.62 |
| 260 | 51 | 1.98 | 38.62 |
| 271 | 51 | 13.86 | 38.62 |
| 326 | 51 | 8.91 | 38.62 |
| 11 | 52 | 8.91 | 37.62 |
| 140 | 52 | 1.98 | 37.62 |
| 163 | 52 | 3.96 | 37.62 |
| 185 | 52 | 5.94 | 37.62 |
| 237 | 52 | 0.99 | 37.62 |
| 358 | 52 | 1.98 | 37.62 |
| 369 | 52 | 13.86 | 37.62 |
| 43 | 53 | 1.98 | 37.62 |
| 54 | 53 | 13.86 | 37.62 |
| 109 | 53 | 8.91 | 37.62 |
| 238 | 53 | 1.98 | 37.62 |
| 261 | 53 | 3.96 | 37.62 |
| 283 | 53 | 5.94 | 37.62 |
| 335 | 53 | 0.99 | 37.62 |
| 20 | 54 | 0.99 | 37.62 |
| 141 | 54 | 1.98 | 37.62 |
| 152 | 54 | 13.86 | 37.62 |
| 207 | 54 | 8.91 | 37.62 |
| 336 | 54 | 1.98 | 37.62 |
| 359 | 54 | 3.96 | 37.62 |
| 381 | 54 | 5.94 | 37.62 |
| 21 | 55 | 1.98 | 37.62 |
| 44 | 55 | 3.96 | 37.62 |
| 66 | 55 | 5.94 | 37.62 |
| 118 | 55 | 0.99 | 37.62 |
| 239 | 55 | 1.98 | 37.62 |
| 250 | 55 | 13.86 | 37.62 |
| 305 | 55 | 8.91 | 37.62 |
| 119 | 56 | 1.98 | 37.62 |
| 142 | 56 | 3.96 | 37.62 |
| 164 | 56 | 5.94 | 37.62 |
| 216 | 56 | 0.99 | 37.62 |
| 337 | 56 | 1.98 | 37.62 |
| 348 | 56 | 13.86 | 37.62 |
| 403 | 56 | 8.91 | 37.62 |
| 22 | 57 | 1.98 | 46.62 |
| 33 | 57 | 13.86 | 46.62 |
| 88 | 57 | 17.91 | 46.62 |
| 217 | 57 | 1.98 | 46.62 |
| 240 | 57 | 3.96 | 46.62 |
| 262 | 57 | 5.94 | 46.62 |
| 314 | 57 | 0.99 | 46.62 |
| 120 | 58 | 1.98 | 38.62 |
| 131 | 58 | 13.86 | 38.62 |
| 186 | 58 | 8.91 | 38.62 |
| 315 | 58 | 1.98 | 38.62 |
| 338 | 58 | 3.96 | 38.62 |
| 360 | 58 | 5.94 | 38.62 |
| 412 | 58 | 1.99 | 38.62 |
| 23 | 59 | 3.96 | 36.64 |
| 45 | 59 | 5.94 | 36.64 |
| 97 | 59 | 1.99 | 36.64 |
| 218 | 59 | 1.98 | 36.64 |
| 229 | 59 | 13.86 | 36.64 |
| 284 | 59 | 8.91 | 36.64 |
All 412 rows remain. Each customer total repeats on that customer’s invoice rows. Summing CustomerTotal again would count the same spending multiple times.
Independent customer partitions
- 1Customer 1: 7 invoices → total 39.62
- 2Customer 2: 7 invoices → total 37.62
- 3Customer 3: 7 invoices → total 39.62
Partition keys can be composite, such as customer and year. Adding a partition changes the denominator, not just formatting. If you need one row per customer, GROUP BY remains simpler.
Calculation order and display order differ
ORDER BY inside OVER defines the sequence for ranking, neighboring-row functions and ordered aggregates. The final query ORDER BY controls displayed rows. Neither guarantees the other. Request a final order when reports or applications rely on it.
Our chronology uses InvoiceDate, InvoiceId. The date is the business order; unique InvoiceId resolves equal-date ties. InvoiceId alone is deterministic but not necessarily chronological. Decide what timestamp and tie policy “latest” means for your report.
Conceptual processing order
- 1FROM / JOIN → WHERE → GROUP BY / HAVING
- 2Window calculations over surviving rows
- 3Outer filtering if needed → final ORDER BY
ROW_NUMBER, RANK and DENSE_RANK disagree on ties
ROW_NUMBER assigns consecutive positions; make its ordering unique for deterministic ties. RANK gives equal values the same position and leaves gaps. DENSE_RANK shares positions without gaps. Choose the business rule: exactly three rows, three competition places, or three distinct values?
The synthetic VALUES set deliberately has a tie followed by a lower amount. Switch to the frame view to see how the same peers affect aggregates.
A tied dataset: ranking and frame views
Ranking with ties
Should tied sales share a position?
WITH sales(SaleId, Team, Amount) AS (
VALUES (1, 'A', 10), (2, 'A', 10), (3, 'A', 20),
(4, 'B', 5), (5, 'B', 15), (6, 'A', 5)
)
SELECT SaleId, Team, Amount,
ROW_NUMBER() OVER (PARTITION BY Team ORDER BY Amount DESC, SaleId) AS RowNumber,
RANK() OVER (PARTITION BY Team ORDER BY Amount DESC) AS RankWithGaps,
DENSE_RANK() OVER (PARTITION BY Team ORDER BY Amount DESC) AS DenseRank
FROM sales ORDER BY Team, Amount DESC, SaleId;| SaleId | Team | Amount | RowNumber | RankWithGaps | DenseRank |
|---|---|---|---|---|---|
| 3 | A | 20 | 1 | 1 | 1 |
| 1 | A | 10 | 2 | 2 | 2 |
| 2 | A | 10 | 3 | 2 | 2 |
| 6 | A | 5 | 4 | 4 | 3 |
| 5 | B | 15 | 1 | 1 | 1 |
| 4 | B | 5 | 2 | 2 | 2 |
Team A amounts 20, 10, 10, 5 receive row numbers 1,2,3,4; ranks 1,2,2,4; dense ranks 1,2,2,3. SaleId breaks ROW_NUMBER ties only: adding it to RANK would remove the tie.
ROWS versus RANGE
Why does a running total jump across peers?
WITH sales(SaleId, Team, Amount) AS (
VALUES (1, 'A', 10), (2, 'A', 10), (3, 'A', 20),
(4, 'B', 5), (5, 'B', 15), (6, 'A', 5)
)
SELECT SaleId, Team, Amount,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount) AS DefaultRange,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ExplicitRange,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount, SaleId
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ExplicitRows
FROM sales ORDER BY Team, Amount, SaleId;| SaleId | Team | Amount | DefaultRange | ExplicitRange | ExplicitRows |
|---|---|---|---|---|---|
| 6 | A | 5 | 5 | 5 | 5 |
| 1 | A | 10 | 25 | 25 | 15 |
| 2 | A | 10 | 25 | 25 | 25 |
| 3 | A | 20 | 45 | 45 | 45 |
| 4 | B | 5 | 5 | 5 | 5 |
| 5 | B | 15 | 20 | 20 | 20 |
The team-A sales of 10 both include the preceding 5 and both 10s: RANGE returns 25. ROWS steps through 15 then 25. DefaultRange equals ExplicitRange in SQLite.
Adding SaleId to RANK’s ordering makes every tuple unique and destroys the intended amount tie. Here it belongs only in ROW_NUMBER’s ordering. Do not add a unique key mechanically to every ranking expression.
Make the running-total frame explicit
A running total answers “how much has accumulated through this invoice?” The frame starts at the first row and ends at the current one. ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW makes this visible. SQLite’s default cumulative RANGE frame also gives this running total with the unique (InvoiceDate, InvoiceId) ordering. Explicit ROWS documents the intended row-by-row behavior, including how ties would be handled if the ordering changed.
Running revenue
How does customer 1’s revenue accumulate?
SELECT InvoiceId, InvoiceDate, Total,
ROUND(SUM(Total) OVER (
ORDER BY InvoiceDate, InvoiceId
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
), 2) AS RunningTotal
FROM Invoice WHERE CustomerId = 1
ORDER BY InvoiceDate, InvoiceId;| InvoiceId | InvoiceDate | Total | RunningTotal |
|---|---|---|---|
| 98 | 2022-03-11 00:00:00 | 3.98 | 3.98 |
| 121 | 2022-06-13 00:00:00 | 3.96 | 7.94 |
| 143 | 2022-09-15 00:00:00 | 5.94 | 13.88 |
| 195 | 2023-05-06 00:00:00 | 0.99 | 14.87 |
| 316 | 2024-10-27 00:00:00 | 1.98 | 16.85 |
| 327 | 2024-12-07 00:00:00 | 13.86 | 30.71 |
| 382 | 2025-08-07 00:00:00 | 8.91 | 39.62 |
WHERE selects seven invoices before the window runs. The final total is 39.62. The uniformly formatted YYYY-MM-DD HH:MM:SS dates determine chronology; InvoiceId breaks any date ties.
Invoice amounts rise and fall; cumulative revenue only rises here because amounts are positive. Refunds could make it fall. The chart uses equally spaced invoices: a long calendar gap occupies no extra width. All exact values remain in the table.
Moving averages smooth a row sequence
A frame slides with each row
- 1Invoice 1: average row 1 only
- 2Invoice 2: average rows 1–2
- 3Later: current row and 2 preceding rows
Three-invoice moving average
Smooth customer 1’s invoice amounts over three consecutive invoices.
SELECT InvoiceId, InvoiceDate, Total,
ROUND(AVG(Total) OVER (
ORDER BY InvoiceDate, InvoiceId
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
), 2) AS MovingAverage
FROM Invoice WHERE CustomerId = 1
ORDER BY InvoiceDate, InvoiceId;| InvoiceId | InvoiceDate | Total | MovingAverage |
|---|---|---|---|
| 98 | 2022-03-11 00:00:00 | 3.98 | 3.98 |
| 121 | 2022-06-13 00:00:00 | 3.96 | 3.97 |
| 143 | 2022-09-15 00:00:00 | 5.94 | 4.63 |
| 195 | 2023-05-06 00:00:00 | 0.99 | 3.63 |
| 316 | 2024-10-27 00:00:00 | 1.98 | 2.97 |
| 327 | 2024-12-07 00:00:00 | 13.86 | 5.61 |
| 382 | 2025-08-07 00:00:00 | 8.91 | 8.25 |
The first frame has one row, the second two, later frames three. This is a three-invoice average, not a three-day average: dates are irregular.
Use the series controls to compare the smoothed trend with individual invoices. An invoice affects its own frame and the next two frames, where those rows exist; it then leaves the moving average. A three-day average needs date-aware logic and a missing-day policy; a ROWS frame cannot express that by changing its number alone.
AVG ignores NULL amounts: a three-row frame can average fewer than three values. Our totals are non-null, but check another schema. To require exactly three observations, calculate a frame count and filter at a later query level.
LAG and LEAD compare neighbors
LAG and LEAD
Compare each invoice with its previous and following invoices.
SELECT InvoiceId, Total,
LAG(Total) OVER (ORDER BY InvoiceDate, InvoiceId) AS PreviousTotal,
LEAD(Total) OVER (ORDER BY InvoiceDate, InvoiceId) AS NextTotal,
ROUND(Total - LAG(Total) OVER (
ORDER BY InvoiceDate, InvoiceId), 2) AS ChangeFromPrevious
FROM Invoice WHERE CustomerId = 1
ORDER BY InvoiceDate, InvoiceId;| InvoiceId | Total | PreviousTotal | NextTotal | ChangeFromPrevious |
|---|---|---|---|---|
| 98 | 3.98 | NULL | 3.96 | NULL |
| 121 | 3.96 | 3.98 | 5.94 | -0.02 |
| 143 | 5.94 | 3.96 | 0.99 | 1.98 |
| 195 | 0.99 | 5.94 | 1.98 | -4.95 |
| 316 | 1.98 | 0.99 | 13.86 | 0.99 |
| 327 | 13.86 | 1.98 | 8.91 | 11.88 |
| 382 | 8.91 | 13.86 | NULL | -4.95 |
The first previous and last next values are NULL: no neighbor, not zero sales. LAG/LEAD address ordered rows; changing an aggregate frame does not change those offsets.
LAG reads a previous ordered row; LEAD reads a following row. Use them for invoice changes, status transitions or event gaps. “Previous” means the previous observed row, not yesterday. Partition by customer if neighbors must belong to the same customer; here we filter to customer 1 first.
A missing neighbor is NULL. Replacing it with zero makes the first invoice appear to increase from zero, which could be a useful baseline or misleading. Treat that as a reporting decision.
ROWS, RANGE and default peers
A partition is the whole calculation group; a frame is a moving subset. For ordered aggregate windows, SQLite defaults to RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, including peers. With no ORDER BY, all rows are peers and the frame covers the partition. State the frame when reviewing cumulative logic.
ROWS versus RANGE
Why does a running total jump across peers?
WITH sales(SaleId, Team, Amount) AS (
VALUES (1, 'A', 10), (2, 'A', 10), (3, 'A', 20),
(4, 'B', 5), (5, 'B', 15), (6, 'A', 5)
)
SELECT SaleId, Team, Amount,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount) AS DefaultRange,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ExplicitRange,
SUM(Amount) OVER (PARTITION BY Team ORDER BY Amount, SaleId
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ExplicitRows
FROM sales ORDER BY Team, Amount, SaleId;| SaleId | Team | Amount | DefaultRange | ExplicitRange | ExplicitRows |
|---|---|---|---|---|---|
| 6 | A | 5 | 5 | 5 | 5 |
| 1 | A | 10 | 25 | 25 | 15 |
| 2 | A | 10 | 25 | 25 | 25 |
| 3 | A | 20 | 45 | 45 | 45 |
| 4 | B | 5 | 5 | 5 | 5 |
| 5 | B | 15 | 20 | 20 | 20 |
The team-A sales of 10 both include the preceding 5 and both 10s: RANGE returns 25. ROWS steps through 15 then 25. DefaultRange equals ExplicitRange in SQLite.
ROWS counts positions. RANGE includes equal ordering values as peers at CURRENT ROW, giving tied sales the same cumulative value. Value-offset RANGE has extra restrictions: SQLite requires one ORDER BY expression, and offset/type behavior varies by engine. Here we use only unbounded RANGE.
Ranking and LAG/LEAD do not use aggregate frames like SUM/AVG. LAST_VALUE is frame-sensitive: a default frame ending at the current row often surprises people expecting the last value of the entire partition. Check each function’s documented behavior.
Top N per group: filter one level later
Top three per customer
Keep at most three largest invoices per customer.
WITH numbered AS (
SELECT InvoiceId, CustomerId, Total,
ROW_NUMBER() OVER (
PARTITION BY CustomerId ORDER BY Total DESC, InvoiceId
) AS Position FROM Invoice
)
SELECT InvoiceId, CustomerId, Total, Position
FROM numbered WHERE Position <= 3
ORDER BY CustomerId, Position;Show all 177 recordsShow first 10 records
| InvoiceId | CustomerId | Total | Position |
|---|---|---|---|
| 327 | 1 | 13.86 | 1 |
| 382 | 1 | 8.91 | 2 |
| 143 | 1 | 5.94 | 3 |
| 12 | 2 | 13.86 | 1 |
| 67 | 2 | 8.91 | 2 |
| 241 | 2 | 5.94 | 3 |
| 110 | 3 | 13.86 | 1 |
| 165 | 3 | 8.91 | 2 |
| 339 | 3 | 5.94 | 3 |
| 208 | 4 | 15.86 | 1 |
| 263 | 4 | 8.91 | 2 |
| 24 | 4 | 5.94 | 3 |
| 306 | 5 | 16.86 | 1 |
| 361 | 5 | 8.91 | 2 |
| 122 | 5 | 5.94 | 3 |
| 404 | 6 | 25.86 | 1 |
| 46 | 6 | 8.91 | 2 |
| 220 | 6 | 5.94 | 3 |
| 89 | 7 | 18.86 | 1 |
| 144 | 7 | 8.91 | 2 |
| 318 | 7 | 5.94 | 3 |
| 187 | 8 | 13.86 | 1 |
| 242 | 8 | 8.91 | 2 |
| 3 | 8 | 5.94 | 3 |
| 285 | 9 | 13.86 | 1 |
| 340 | 9 | 8.91 | 2 |
| 101 | 9 | 5.94 | 3 |
| 383 | 10 | 13.86 | 1 |
| 25 | 10 | 8.91 | 2 |
| 199 | 10 | 5.94 | 3 |
| 68 | 11 | 13.86 | 1 |
| 123 | 11 | 8.91 | 2 |
| 297 | 11 | 5.94 | 3 |
| 166 | 12 | 13.86 | 1 |
| 221 | 12 | 8.91 | 2 |
| 395 | 12 | 5.94 | 3 |
| 264 | 13 | 13.86 | 1 |
| 319 | 13 | 8.91 | 2 |
| 80 | 13 | 5.94 | 3 |
| 362 | 14 | 13.86 | 1 |
| 4 | 14 | 8.91 | 2 |
| 178 | 14 | 5.94 | 3 |
| 47 | 15 | 13.86 | 1 |
| 102 | 15 | 9.91 | 2 |
| 276 | 15 | 5.94 | 3 |
| 145 | 16 | 13.86 | 1 |
| 200 | 16 | 8.91 | 2 |
| 374 | 16 | 5.94 | 3 |
| 243 | 17 | 13.86 | 1 |
| 298 | 17 | 10.91 | 2 |
| 59 | 17 | 5.94 | 3 |
| 341 | 18 | 13.86 | 1 |
| 396 | 18 | 8.91 | 2 |
| 157 | 18 | 5.94 | 3 |
| 26 | 19 | 13.86 | 1 |
| 81 | 19 | 8.91 | 2 |
| 255 | 19 | 5.94 | 3 |
| 124 | 20 | 13.86 | 1 |
| 179 | 20 | 8.91 | 2 |
| 353 | 20 | 5.94 | 3 |
| 222 | 21 | 13.86 | 1 |
| 277 | 21 | 8.91 | 2 |
| 38 | 21 | 5.94 | 3 |
| 320 | 22 | 13.86 | 1 |
| 375 | 22 | 8.91 | 2 |
| 136 | 22 | 5.94 | 3 |
| 5 | 23 | 13.86 | 1 |
| 60 | 23 | 8.91 | 2 |
| 234 | 23 | 5.94 | 3 |
| 103 | 24 | 15.86 | 1 |
| 158 | 24 | 8.91 | 2 |
| 310 | 24 | 7.96 | 3 |
| 201 | 25 | 18.86 | 1 |
| 256 | 25 | 8.91 | 2 |
| 17 | 25 | 5.94 | 3 |
| 299 | 26 | 23.86 | 1 |
| 354 | 26 | 8.91 | 2 |
| 115 | 26 | 5.94 | 3 |
| 397 | 27 | 13.86 | 1 |
| 39 | 27 | 8.91 | 2 |
| 213 | 27 | 5.94 | 3 |
| 82 | 28 | 13.86 | 1 |
| 311 | 28 | 11.94 | 2 |
| 137 | 28 | 8.91 | 3 |
| 180 | 29 | 13.86 | 1 |
| 235 | 29 | 8.91 | 2 |
| 409 | 29 | 5.94 | 3 |
| 278 | 30 | 13.86 | 1 |
| 333 | 30 | 8.91 | 2 |
| 94 | 30 | 5.94 | 3 |
| 376 | 31 | 13.86 | 1 |
| 18 | 31 | 8.91 | 2 |
| 192 | 31 | 5.94 | 3 |
| 61 | 32 | 13.86 | 1 |
| 116 | 32 | 8.91 | 2 |
| 290 | 32 | 5.94 | 3 |
| 159 | 33 | 13.86 | 1 |
| 214 | 33 | 8.91 | 2 |
| 388 | 33 | 5.94 | 3 |
| 257 | 34 | 13.86 | 1 |
| 312 | 34 | 10.91 | 2 |
| 73 | 34 | 5.94 | 3 |
| 355 | 35 | 13.86 | 1 |
| 410 | 35 | 8.91 | 2 |
| 171 | 35 | 5.94 | 3 |
| 40 | 36 | 13.86 | 1 |
| 95 | 36 | 8.91 | 2 |
| 269 | 36 | 5.94 | 3 |
| 193 | 37 | 14.91 | 1 |
| 138 | 37 | 13.86 | 2 |
| 367 | 37 | 5.94 | 3 |
| 236 | 38 | 13.86 | 1 |
| 291 | 38 | 8.91 | 2 |
| 52 | 38 | 5.94 | 3 |
| 334 | 39 | 13.86 | 1 |
| 389 | 39 | 8.91 | 2 |
| 150 | 39 | 5.94 | 3 |
| 19 | 40 | 13.86 | 1 |
| 74 | 40 | 8.91 | 2 |
| 248 | 40 | 5.94 | 3 |
| 117 | 41 | 13.86 | 1 |
| 172 | 41 | 8.91 | 2 |
| 346 | 41 | 5.94 | 3 |
| 215 | 42 | 13.86 | 1 |
| 270 | 42 | 8.91 | 2 |
| 31 | 42 | 5.94 | 3 |
| 313 | 43 | 16.86 | 1 |
| 368 | 43 | 8.91 | 2 |
| 129 | 43 | 5.94 | 3 |
| 411 | 44 | 13.86 | 1 |
| 53 | 44 | 8.91 | 2 |
| 205 | 44 | 7.96 | 3 |
| 96 | 45 | 21.86 | 1 |
| 151 | 45 | 8.91 | 2 |
| 325 | 45 | 5.94 | 3 |
| 194 | 46 | 21.86 | 1 |
| 249 | 46 | 8.91 | 2 |
| 10 | 46 | 5.94 | 3 |
| 292 | 47 | 13.86 | 1 |
| 347 | 47 | 8.91 | 2 |
| 108 | 47 | 5.94 | 3 |
| 390 | 48 | 13.86 | 1 |
| 206 | 48 | 8.94 | 2 |
| 32 | 48 | 8.91 | 3 |
| 75 | 49 | 13.86 | 1 |
| 130 | 49 | 8.91 | 2 |
| 304 | 49 | 5.94 | 3 |
| 173 | 50 | 13.86 | 1 |
| 228 | 50 | 8.91 | 2 |
| 402 | 50 | 5.94 | 3 |
| 271 | 51 | 13.86 | 1 |
| 326 | 51 | 8.91 | 2 |
| 87 | 51 | 6.94 | 3 |
| 369 | 52 | 13.86 | 1 |
| 11 | 52 | 8.91 | 2 |
| 185 | 52 | 5.94 | 3 |
| 54 | 53 | 13.86 | 1 |
| 109 | 53 | 8.91 | 2 |
| 283 | 53 | 5.94 | 3 |
| 152 | 54 | 13.86 | 1 |
| 207 | 54 | 8.91 | 2 |
| 381 | 54 | 5.94 | 3 |
| 250 | 55 | 13.86 | 1 |
| 305 | 55 | 8.91 | 2 |
| 66 | 55 | 5.94 | 3 |
| 348 | 56 | 13.86 | 1 |
| 403 | 56 | 8.91 | 2 |
| 164 | 56 | 5.94 | 3 |
| 88 | 57 | 17.91 | 1 |
| 33 | 57 | 13.86 | 2 |
| 262 | 57 | 5.94 | 3 |
| 131 | 58 | 13.86 | 1 |
| 186 | 58 | 8.91 | 2 |
| 360 | 58 | 5.94 | 3 |
| 229 | 59 | 13.86 | 1 |
| 284 | 59 | 8.91 | 2 |
| 45 | 59 | 5.94 | 3 |
A CTE computes positions before the outer WHERE filters them. RANK/DENSE_RANK can keep more than three invoices if ties are included; that is a different business rule.
The CTE gives Position a name before the outer WHERE filters it. SQLite cannot filter a window result in the same SELECT’s WHERE and does not support QUALIFY, available in some other engines. An outer query is a clear, widely usable pattern.
This query keeps at most three invoices per customer. For “all invoices with one of the three highest amounts”, DENSE_RANK is a different rule and may return more rows. For detail plus totals, windows can avoid joining a grouped summary back to detail. For a yes/no related-row test, EXISTS is usually clearer.
Correctness traps and performance
- Missing ordering: a row number needs a meaningful sequence. An unordered window sum is a whole-partition total, not cumulative.
- Unexpected ties: choose exact row counts versus rank bands first.
- Wrong frame: default peers can make cumulative sums jump; three rows are not three days.
- Wrong filtering level: filtering before a window changes its population. A computed rank requires outer filtering in SQLite.
- Confused orderings: window ordering does not promise presentation ordering.
- Portability: check frames, NULL ordering, QUALIFY and date arithmetic in your engine. These queries target SQLite 3.25+, where window functions were introduced.
Windows often require sorting on partition and order keys. Matching indexes may help but do not guarantee avoiding a sort. Several windows with different orders may require different work. Large partitions and wide intermediate rows increase memory or temporary-storage pressure. Inspect plans with representative data before declaring a window faster than a self-join or correlated subquery.
No production benchmark is inferred from this sample database. The maintainability benefit is directly expressing analytical intent; performance remains an engine-specific measurement.
Three exercises, three decisions
Use the unchanged Chinook database. State the population, partition, ordering, frame and tie policy before writing SQL.
Beginner · count without collapsing
Preserve every invoice and add its customer’s invoice count.
Hint
Use COUNT(*) with a customer partition. No ordering is needed for a whole-customer count.
Solution and checked result
Beginner solution
Preserve every invoice and add its customer’s invoice count.
SELECT InvoiceId, CustomerId,
COUNT(*) OVER (PARTITION BY CustomerId) AS InvoiceCount
FROM Invoice ORDER BY CustomerId, InvoiceId;Show all 412 recordsShow first 10 records
| InvoiceId | CustomerId | InvoiceCount |
|---|---|---|
| 98 | 1 | 7 |
| 121 | 1 | 7 |
| 143 | 1 | 7 |
| 195 | 1 | 7 |
| 316 | 1 | 7 |
| 327 | 1 | 7 |
| 382 | 1 | 7 |
| 1 | 2 | 7 |
| 12 | 2 | 7 |
| 67 | 2 | 7 |
| 196 | 2 | 7 |
| 219 | 2 | 7 |
| 241 | 2 | 7 |
| 293 | 2 | 7 |
| 99 | 3 | 7 |
| 110 | 3 | 7 |
| 165 | 3 | 7 |
| 294 | 3 | 7 |
| 317 | 3 | 7 |
| 339 | 3 | 7 |
| 391 | 3 | 7 |
| 2 | 4 | 7 |
| 24 | 4 | 7 |
| 76 | 4 | 7 |
| 197 | 4 | 7 |
| 208 | 4 | 7 |
| 263 | 4 | 7 |
| 392 | 4 | 7 |
| 77 | 5 | 7 |
| 100 | 5 | 7 |
| 122 | 5 | 7 |
| 174 | 5 | 7 |
| 295 | 5 | 7 |
| 306 | 5 | 7 |
| 361 | 5 | 7 |
| 46 | 6 | 7 |
| 175 | 6 | 7 |
| 198 | 6 | 7 |
| 220 | 6 | 7 |
| 272 | 6 | 7 |
| 393 | 6 | 7 |
| 404 | 6 | 7 |
| 78 | 7 | 7 |
| 89 | 7 | 7 |
| 144 | 7 | 7 |
| 273 | 7 | 7 |
| 296 | 7 | 7 |
| 318 | 7 | 7 |
| 370 | 7 | 7 |
| 3 | 8 | 7 |
| 55 | 8 | 7 |
| 176 | 8 | 7 |
| 187 | 8 | 7 |
| 242 | 8 | 7 |
| 371 | 8 | 7 |
| 394 | 8 | 7 |
| 56 | 9 | 7 |
| 79 | 9 | 7 |
| 101 | 9 | 7 |
| 153 | 9 | 7 |
| 274 | 9 | 7 |
| 285 | 9 | 7 |
| 340 | 9 | 7 |
| 25 | 10 | 7 |
| 154 | 10 | 7 |
| 177 | 10 | 7 |
| 199 | 10 | 7 |
| 251 | 10 | 7 |
| 372 | 10 | 7 |
| 383 | 10 | 7 |
| 57 | 11 | 7 |
| 68 | 11 | 7 |
| 123 | 11 | 7 |
| 252 | 11 | 7 |
| 275 | 11 | 7 |
| 297 | 11 | 7 |
| 349 | 11 | 7 |
| 34 | 12 | 7 |
| 155 | 12 | 7 |
| 166 | 12 | 7 |
| 221 | 12 | 7 |
| 350 | 12 | 7 |
| 373 | 12 | 7 |
| 395 | 12 | 7 |
| 35 | 13 | 7 |
| 58 | 13 | 7 |
| 80 | 13 | 7 |
| 132 | 13 | 7 |
| 253 | 13 | 7 |
| 264 | 13 | 7 |
| 319 | 13 | 7 |
| 4 | 14 | 7 |
| 133 | 14 | 7 |
| 156 | 14 | 7 |
| 178 | 14 | 7 |
| 230 | 14 | 7 |
| 351 | 14 | 7 |
| 362 | 14 | 7 |
| 36 | 15 | 7 |
| 47 | 15 | 7 |
| 102 | 15 | 7 |
| 231 | 15 | 7 |
| 254 | 15 | 7 |
| 276 | 15 | 7 |
| 328 | 15 | 7 |
| 13 | 16 | 7 |
| 134 | 16 | 7 |
| 145 | 16 | 7 |
| 200 | 16 | 7 |
| 329 | 16 | 7 |
| 352 | 16 | 7 |
| 374 | 16 | 7 |
| 14 | 17 | 7 |
| 37 | 17 | 7 |
| 59 | 17 | 7 |
| 111 | 17 | 7 |
| 232 | 17 | 7 |
| 243 | 17 | 7 |
| 298 | 17 | 7 |
| 112 | 18 | 7 |
| 135 | 18 | 7 |
| 157 | 18 | 7 |
| 209 | 18 | 7 |
| 330 | 18 | 7 |
| 341 | 18 | 7 |
| 396 | 18 | 7 |
| 15 | 19 | 7 |
| 26 | 19 | 7 |
| 81 | 19 | 7 |
| 210 | 19 | 7 |
| 233 | 19 | 7 |
| 255 | 19 | 7 |
| 307 | 19 | 7 |
| 113 | 20 | 7 |
| 124 | 20 | 7 |
| 179 | 20 | 7 |
| 308 | 20 | 7 |
| 331 | 20 | 7 |
| 353 | 20 | 7 |
| 405 | 20 | 7 |
| 16 | 21 | 7 |
| 38 | 21 | 7 |
| 90 | 21 | 7 |
| 211 | 21 | 7 |
| 222 | 21 | 7 |
| 277 | 21 | 7 |
| 406 | 21 | 7 |
| 91 | 22 | 7 |
| 114 | 22 | 7 |
| 136 | 22 | 7 |
| 188 | 22 | 7 |
| 309 | 22 | 7 |
| 320 | 22 | 7 |
| 375 | 22 | 7 |
| 5 | 23 | 7 |
| 60 | 23 | 7 |
| 189 | 23 | 7 |
| 212 | 23 | 7 |
| 234 | 23 | 7 |
| 286 | 23 | 7 |
| 407 | 23 | 7 |
| 92 | 24 | 7 |
| 103 | 24 | 7 |
| 158 | 24 | 7 |
| 287 | 24 | 7 |
| 310 | 24 | 7 |
| 332 | 24 | 7 |
| 384 | 24 | 7 |
| 17 | 25 | 7 |
| 69 | 25 | 7 |
| 190 | 25 | 7 |
| 201 | 25 | 7 |
| 256 | 25 | 7 |
| 385 | 25 | 7 |
| 408 | 25 | 7 |
| 70 | 26 | 7 |
| 93 | 26 | 7 |
| 115 | 26 | 7 |
| 167 | 26 | 7 |
| 288 | 26 | 7 |
| 299 | 26 | 7 |
| 354 | 26 | 7 |
| 39 | 27 | 7 |
| 168 | 27 | 7 |
| 191 | 27 | 7 |
| 213 | 27 | 7 |
| 265 | 27 | 7 |
| 386 | 27 | 7 |
| 397 | 27 | 7 |
| 71 | 28 | 7 |
| 82 | 28 | 7 |
| 137 | 28 | 7 |
| 266 | 28 | 7 |
| 289 | 28 | 7 |
| 311 | 28 | 7 |
| 363 | 28 | 7 |
| 48 | 29 | 7 |
| 169 | 29 | 7 |
| 180 | 29 | 7 |
| 235 | 29 | 7 |
| 364 | 29 | 7 |
| 387 | 29 | 7 |
| 409 | 29 | 7 |
| 49 | 30 | 7 |
| 72 | 30 | 7 |
| 94 | 30 | 7 |
| 146 | 30 | 7 |
| 267 | 30 | 7 |
| 278 | 30 | 7 |
| 333 | 30 | 7 |
| 18 | 31 | 7 |
| 147 | 31 | 7 |
| 170 | 31 | 7 |
| 192 | 31 | 7 |
| 244 | 31 | 7 |
| 365 | 31 | 7 |
| 376 | 31 | 7 |
| 50 | 32 | 7 |
| 61 | 32 | 7 |
| 116 | 32 | 7 |
| 245 | 32 | 7 |
| 268 | 32 | 7 |
| 290 | 32 | 7 |
| 342 | 32 | 7 |
| 27 | 33 | 7 |
| 148 | 33 | 7 |
| 159 | 33 | 7 |
| 214 | 33 | 7 |
| 343 | 33 | 7 |
| 366 | 33 | 7 |
| 388 | 33 | 7 |
| 28 | 34 | 7 |
| 51 | 34 | 7 |
| 73 | 34 | 7 |
| 125 | 34 | 7 |
| 246 | 34 | 7 |
| 257 | 34 | 7 |
| 312 | 34 | 7 |
| 126 | 35 | 7 |
| 149 | 35 | 7 |
| 171 | 35 | 7 |
| 223 | 35 | 7 |
| 344 | 35 | 7 |
| 355 | 35 | 7 |
| 410 | 35 | 7 |
| 29 | 36 | 7 |
| 40 | 36 | 7 |
| 95 | 36 | 7 |
| 224 | 36 | 7 |
| 247 | 36 | 7 |
| 269 | 36 | 7 |
| 321 | 36 | 7 |
| 6 | 37 | 7 |
| 127 | 37 | 7 |
| 138 | 37 | 7 |
| 193 | 37 | 7 |
| 322 | 37 | 7 |
| 345 | 37 | 7 |
| 367 | 37 | 7 |
| 7 | 38 | 7 |
| 30 | 38 | 7 |
| 52 | 38 | 7 |
| 104 | 38 | 7 |
| 225 | 38 | 7 |
| 236 | 38 | 7 |
| 291 | 38 | 7 |
| 105 | 39 | 7 |
| 128 | 39 | 7 |
| 150 | 39 | 7 |
| 202 | 39 | 7 |
| 323 | 39 | 7 |
| 334 | 39 | 7 |
| 389 | 39 | 7 |
| 8 | 40 | 7 |
| 19 | 40 | 7 |
| 74 | 40 | 7 |
| 203 | 40 | 7 |
| 226 | 40 | 7 |
| 248 | 40 | 7 |
| 300 | 40 | 7 |
| 106 | 41 | 7 |
| 117 | 41 | 7 |
| 172 | 41 | 7 |
| 301 | 41 | 7 |
| 324 | 41 | 7 |
| 346 | 41 | 7 |
| 398 | 41 | 7 |
| 9 | 42 | 7 |
| 31 | 42 | 7 |
| 83 | 42 | 7 |
| 204 | 42 | 7 |
| 215 | 42 | 7 |
| 270 | 42 | 7 |
| 399 | 42 | 7 |
| 84 | 43 | 7 |
| 107 | 43 | 7 |
| 129 | 43 | 7 |
| 181 | 43 | 7 |
| 302 | 43 | 7 |
| 313 | 43 | 7 |
| 368 | 43 | 7 |
| 53 | 44 | 7 |
| 182 | 44 | 7 |
| 205 | 44 | 7 |
| 227 | 44 | 7 |
| 279 | 44 | 7 |
| 400 | 44 | 7 |
| 411 | 44 | 7 |
| 85 | 45 | 7 |
| 96 | 45 | 7 |
| 151 | 45 | 7 |
| 280 | 45 | 7 |
| 303 | 45 | 7 |
| 325 | 45 | 7 |
| 377 | 45 | 7 |
| 10 | 46 | 7 |
| 62 | 46 | 7 |
| 183 | 46 | 7 |
| 194 | 46 | 7 |
| 249 | 46 | 7 |
| 378 | 46 | 7 |
| 401 | 46 | 7 |
| 63 | 47 | 7 |
| 86 | 47 | 7 |
| 108 | 47 | 7 |
| 160 | 47 | 7 |
| 281 | 47 | 7 |
| 292 | 47 | 7 |
| 347 | 47 | 7 |
| 32 | 48 | 7 |
| 161 | 48 | 7 |
| 184 | 48 | 7 |
| 206 | 48 | 7 |
| 258 | 48 | 7 |
| 379 | 48 | 7 |
| 390 | 48 | 7 |
| 64 | 49 | 7 |
| 75 | 49 | 7 |
| 130 | 49 | 7 |
| 259 | 49 | 7 |
| 282 | 49 | 7 |
| 304 | 49 | 7 |
| 356 | 49 | 7 |
| 41 | 50 | 7 |
| 162 | 50 | 7 |
| 173 | 50 | 7 |
| 228 | 50 | 7 |
| 357 | 50 | 7 |
| 380 | 50 | 7 |
| 402 | 50 | 7 |
| 42 | 51 | 7 |
| 65 | 51 | 7 |
| 87 | 51 | 7 |
| 139 | 51 | 7 |
| 260 | 51 | 7 |
| 271 | 51 | 7 |
| 326 | 51 | 7 |
| 11 | 52 | 7 |
| 140 | 52 | 7 |
| 163 | 52 | 7 |
| 185 | 52 | 7 |
| 237 | 52 | 7 |
| 358 | 52 | 7 |
| 369 | 52 | 7 |
| 43 | 53 | 7 |
| 54 | 53 | 7 |
| 109 | 53 | 7 |
| 238 | 53 | 7 |
| 261 | 53 | 7 |
| 283 | 53 | 7 |
| 335 | 53 | 7 |
| 20 | 54 | 7 |
| 141 | 54 | 7 |
| 152 | 54 | 7 |
| 207 | 54 | 7 |
| 336 | 54 | 7 |
| 359 | 54 | 7 |
| 381 | 54 | 7 |
| 21 | 55 | 7 |
| 44 | 55 | 7 |
| 66 | 55 | 7 |
| 118 | 55 | 7 |
| 239 | 55 | 7 |
| 250 | 55 | 7 |
| 305 | 55 | 7 |
| 119 | 56 | 7 |
| 142 | 56 | 7 |
| 164 | 56 | 7 |
| 216 | 56 | 7 |
| 337 | 56 | 7 |
| 348 | 56 | 7 |
| 403 | 56 | 7 |
| 22 | 57 | 7 |
| 33 | 57 | 7 |
| 88 | 57 | 7 |
| 217 | 57 | 7 |
| 240 | 57 | 7 |
| 262 | 57 | 7 |
| 314 | 57 | 7 |
| 120 | 58 | 7 |
| 131 | 58 | 7 |
| 186 | 58 | 7 |
| 315 | 58 | 7 |
| 338 | 58 | 7 |
| 360 | 58 | 7 |
| 412 | 58 | 7 |
| 23 | 59 | 6 |
| 45 | 59 | 6 |
| 97 | 59 | 6 |
| 218 | 59 | 6 |
| 229 | 59 | 6 |
| 284 | 59 | 6 |
Intermediate · cumulative spending
Restart cumulative spending for each customer.
Hint
Add customer partitioning to the running total. Keep chronological ordering and an explicit ROWS frame.
Solution and checked result
Intermediate solution
Restart cumulative spending for each customer.
SELECT InvoiceId, CustomerId, Total,
ROUND(SUM(Total) OVER (
PARTITION BY CustomerId ORDER BY InvoiceDate, InvoiceId
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
), 2) AS RunningTotal
FROM Invoice ORDER BY CustomerId, InvoiceDate, InvoiceId;Show all 412 recordsShow first 10 records
| InvoiceId | CustomerId | Total | RunningTotal |
|---|---|---|---|
| 98 | 1 | 3.98 | 3.98 |
| 121 | 1 | 3.96 | 7.94 |
| 143 | 1 | 5.94 | 13.88 |
| 195 | 1 | 0.99 | 14.87 |
| 316 | 1 | 1.98 | 16.85 |
| 327 | 1 | 13.86 | 30.71 |
| 382 | 1 | 8.91 | 39.62 |
| 1 | 2 | 1.98 | 1.98 |
| 12 | 2 | 13.86 | 15.84 |
| 67 | 2 | 8.91 | 24.75 |
| 196 | 2 | 1.98 | 26.73 |
| 219 | 2 | 3.96 | 30.69 |
| 241 | 2 | 5.94 | 36.63 |
| 293 | 2 | 0.99 | 37.62 |
| 99 | 3 | 3.98 | 3.98 |
| 110 | 3 | 13.86 | 17.84 |
| 165 | 3 | 8.91 | 26.75 |
| 294 | 3 | 1.98 | 28.73 |
| 317 | 3 | 3.96 | 32.69 |
| 339 | 3 | 5.94 | 38.63 |
| 391 | 3 | 0.99 | 39.62 |
| 2 | 4 | 3.96 | 3.96 |
| 24 | 4 | 5.94 | 9.9 |
| 76 | 4 | 0.99 | 10.89 |
| 197 | 4 | 1.98 | 12.87 |
| 208 | 4 | 15.86 | 28.73 |
| 263 | 4 | 8.91 | 37.64 |
| 392 | 4 | 1.98 | 39.62 |
| 77 | 5 | 1.98 | 1.98 |
| 100 | 5 | 3.96 | 5.94 |
| 122 | 5 | 5.94 | 11.88 |
| 174 | 5 | 0.99 | 12.87 |
| 295 | 5 | 1.98 | 14.85 |
| 306 | 5 | 16.86 | 31.71 |
| 361 | 5 | 8.91 | 40.62 |
| 46 | 6 | 8.91 | 8.91 |
| 175 | 6 | 1.98 | 10.89 |
| 198 | 6 | 3.96 | 14.85 |
| 220 | 6 | 5.94 | 20.79 |
| 272 | 6 | 0.99 | 21.78 |
| 393 | 6 | 1.98 | 23.76 |
| 404 | 6 | 25.86 | 49.62 |
| 78 | 7 | 1.98 | 1.98 |
| 89 | 7 | 18.86 | 20.84 |
| 144 | 7 | 8.91 | 29.75 |
| 273 | 7 | 1.98 | 31.73 |
| 296 | 7 | 3.96 | 35.69 |
| 318 | 7 | 5.94 | 41.63 |
| 370 | 7 | 0.99 | 42.62 |
| 3 | 8 | 5.94 | 5.94 |
| 55 | 8 | 0.99 | 6.93 |
| 176 | 8 | 1.98 | 8.91 |
| 187 | 8 | 13.86 | 22.77 |
| 242 | 8 | 8.91 | 31.68 |
| 371 | 8 | 1.98 | 33.66 |
| 394 | 8 | 3.96 | 37.62 |
| 56 | 9 | 1.98 | 1.98 |
| 79 | 9 | 3.96 | 5.94 |
| 101 | 9 | 5.94 | 11.88 |
| 153 | 9 | 0.99 | 12.87 |
| 274 | 9 | 1.98 | 14.85 |
| 285 | 9 | 13.86 | 28.71 |
| 340 | 9 | 8.91 | 37.62 |
| 25 | 10 | 8.91 | 8.91 |
| 154 | 10 | 1.98 | 10.89 |
| 177 | 10 | 3.96 | 14.85 |
| 199 | 10 | 5.94 | 20.79 |
| 251 | 10 | 0.99 | 21.78 |
| 372 | 10 | 1.98 | 23.76 |
| 383 | 10 | 13.86 | 37.62 |
| 57 | 11 | 1.98 | 1.98 |
| 68 | 11 | 13.86 | 15.84 |
| 123 | 11 | 8.91 | 24.75 |
| 252 | 11 | 1.98 | 26.73 |
| 275 | 11 | 3.96 | 30.69 |
| 297 | 11 | 5.94 | 36.63 |
| 349 | 11 | 0.99 | 37.62 |
| 34 | 12 | 0.99 | 0.99 |
| 155 | 12 | 1.98 | 2.97 |
| 166 | 12 | 13.86 | 16.83 |
| 221 | 12 | 8.91 | 25.74 |
| 350 | 12 | 1.98 | 27.72 |
| 373 | 12 | 3.96 | 31.68 |
| 395 | 12 | 5.94 | 37.62 |
| 35 | 13 | 1.98 | 1.98 |
| 58 | 13 | 3.96 | 5.94 |
| 80 | 13 | 5.94 | 11.88 |
| 132 | 13 | 0.99 | 12.87 |
| 253 | 13 | 1.98 | 14.85 |
| 264 | 13 | 13.86 | 28.71 |
| 319 | 13 | 8.91 | 37.62 |
| 4 | 14 | 8.91 | 8.91 |
| 133 | 14 | 1.98 | 10.89 |
| 156 | 14 | 3.96 | 14.85 |
| 178 | 14 | 5.94 | 20.79 |
| 230 | 14 | 0.99 | 21.78 |
| 351 | 14 | 1.98 | 23.76 |
| 362 | 14 | 13.86 | 37.62 |
| 36 | 15 | 1.98 | 1.98 |
| 47 | 15 | 13.86 | 15.84 |
| 102 | 15 | 9.91 | 25.75 |
| 231 | 15 | 1.98 | 27.73 |
| 254 | 15 | 3.96 | 31.69 |
| 276 | 15 | 5.94 | 37.63 |
| 328 | 15 | 0.99 | 38.62 |
| 13 | 16 | 0.99 | 0.99 |
| 134 | 16 | 1.98 | 2.97 |
| 145 | 16 | 13.86 | 16.83 |
| 200 | 16 | 8.91 | 25.74 |
| 329 | 16 | 1.98 | 27.72 |
| 352 | 16 | 3.96 | 31.68 |
| 374 | 16 | 5.94 | 37.62 |
| 14 | 17 | 1.98 | 1.98 |
| 37 | 17 | 3.96 | 5.94 |
| 59 | 17 | 5.94 | 11.88 |
| 111 | 17 | 0.99 | 12.87 |
| 232 | 17 | 1.98 | 14.85 |
| 243 | 17 | 13.86 | 28.71 |
| 298 | 17 | 10.91 | 39.62 |
| 112 | 18 | 1.98 | 1.98 |
| 135 | 18 | 3.96 | 5.94 |
| 157 | 18 | 5.94 | 11.88 |
| 209 | 18 | 0.99 | 12.87 |
| 330 | 18 | 1.98 | 14.85 |
| 341 | 18 | 13.86 | 28.71 |
| 396 | 18 | 8.91 | 37.62 |
| 15 | 19 | 1.98 | 1.98 |
| 26 | 19 | 13.86 | 15.84 |
| 81 | 19 | 8.91 | 24.75 |
| 210 | 19 | 1.98 | 26.73 |
| 233 | 19 | 3.96 | 30.69 |
| 255 | 19 | 5.94 | 36.63 |
| 307 | 19 | 1.99 | 38.62 |
| 113 | 20 | 1.98 | 1.98 |
| 124 | 20 | 13.86 | 15.84 |
| 179 | 20 | 8.91 | 24.75 |
| 308 | 20 | 3.98 | 28.73 |
| 331 | 20 | 3.96 | 32.69 |
| 353 | 20 | 5.94 | 38.63 |
| 405 | 20 | 0.99 | 39.62 |
| 16 | 21 | 3.96 | 3.96 |
| 38 | 21 | 5.94 | 9.9 |
| 90 | 21 | 0.99 | 10.89 |
| 211 | 21 | 1.98 | 12.87 |
| 222 | 21 | 13.86 | 26.73 |
| 277 | 21 | 8.91 | 35.64 |
| 406 | 21 | 1.98 | 37.62 |
| 91 | 22 | 1.98 | 1.98 |
| 114 | 22 | 3.96 | 5.94 |
| 136 | 22 | 5.94 | 11.88 |
| 188 | 22 | 0.99 | 12.87 |
| 309 | 22 | 3.98 | 16.85 |
| 320 | 22 | 13.86 | 30.71 |
| 375 | 22 | 8.91 | 39.62 |
| 5 | 23 | 13.86 | 13.86 |
| 60 | 23 | 8.91 | 22.77 |
| 189 | 23 | 1.98 | 24.75 |
| 212 | 23 | 3.96 | 28.71 |
| 234 | 23 | 5.94 | 34.65 |
| 286 | 23 | 0.99 | 35.64 |
| 407 | 23 | 1.98 | 37.62 |
| 92 | 24 | 1.98 | 1.98 |
| 103 | 24 | 15.86 | 17.84 |
| 158 | 24 | 8.91 | 26.75 |
| 287 | 24 | 1.98 | 28.73 |
| 310 | 24 | 7.96 | 36.69 |
| 332 | 24 | 5.94 | 42.63 |
| 384 | 24 | 0.99 | 43.62 |
| 17 | 25 | 5.94 | 5.94 |
| 69 | 25 | 0.99 | 6.93 |
| 190 | 25 | 1.98 | 8.91 |
| 201 | 25 | 18.86 | 27.77 |
| 256 | 25 | 8.91 | 36.68 |
| 385 | 25 | 1.98 | 38.66 |
| 408 | 25 | 3.96 | 42.62 |
| 70 | 26 | 1.98 | 1.98 |
| 93 | 26 | 3.96 | 5.94 |
| 115 | 26 | 5.94 | 11.88 |
| 167 | 26 | 0.99 | 12.87 |
| 288 | 26 | 1.98 | 14.85 |
| 299 | 26 | 23.86 | 38.71 |
| 354 | 26 | 8.91 | 47.62 |
| 39 | 27 | 8.91 | 8.91 |
| 168 | 27 | 1.98 | 10.89 |
| 191 | 27 | 3.96 | 14.85 |
| 213 | 27 | 5.94 | 20.79 |
| 265 | 27 | 0.99 | 21.78 |
| 386 | 27 | 1.98 | 23.76 |
| 397 | 27 | 13.86 | 37.62 |
| 71 | 28 | 1.98 | 1.98 |
| 82 | 28 | 13.86 | 15.84 |
| 137 | 28 | 8.91 | 24.75 |
| 266 | 28 | 1.98 | 26.73 |
| 289 | 28 | 3.96 | 30.69 |
| 311 | 28 | 11.94 | 42.63 |
| 363 | 28 | 0.99 | 43.62 |
| 48 | 29 | 0.99 | 0.99 |
| 169 | 29 | 1.98 | 2.97 |
| 180 | 29 | 13.86 | 16.83 |
| 235 | 29 | 8.91 | 25.74 |
| 364 | 29 | 1.98 | 27.72 |
| 387 | 29 | 3.96 | 31.68 |
| 409 | 29 | 5.94 | 37.62 |
| 49 | 30 | 1.98 | 1.98 |
| 72 | 30 | 3.96 | 5.94 |
| 94 | 30 | 5.94 | 11.88 |
| 146 | 30 | 0.99 | 12.87 |
| 267 | 30 | 1.98 | 14.85 |
| 278 | 30 | 13.86 | 28.71 |
| 333 | 30 | 8.91 | 37.62 |
| 18 | 31 | 8.91 | 8.91 |
| 147 | 31 | 1.98 | 10.89 |
| 170 | 31 | 3.96 | 14.85 |
| 192 | 31 | 5.94 | 20.79 |
| 244 | 31 | 0.99 | 21.78 |
| 365 | 31 | 1.98 | 23.76 |
| 376 | 31 | 13.86 | 37.62 |
| 50 | 32 | 1.98 | 1.98 |
| 61 | 32 | 13.86 | 15.84 |
| 116 | 32 | 8.91 | 24.75 |
| 245 | 32 | 1.98 | 26.73 |
| 268 | 32 | 3.96 | 30.69 |
| 290 | 32 | 5.94 | 36.63 |
| 342 | 32 | 0.99 | 37.62 |
| 27 | 33 | 0.99 | 0.99 |
| 148 | 33 | 1.98 | 2.97 |
| 159 | 33 | 13.86 | 16.83 |
| 214 | 33 | 8.91 | 25.74 |
| 343 | 33 | 1.98 | 27.72 |
| 366 | 33 | 3.96 | 31.68 |
| 388 | 33 | 5.94 | 37.62 |
| 28 | 34 | 1.98 | 1.98 |
| 51 | 34 | 3.96 | 5.94 |
| 73 | 34 | 5.94 | 11.88 |
| 125 | 34 | 0.99 | 12.87 |
| 246 | 34 | 1.98 | 14.85 |
| 257 | 34 | 13.86 | 28.71 |
| 312 | 34 | 10.91 | 39.62 |
| 126 | 35 | 1.98 | 1.98 |
| 149 | 35 | 3.96 | 5.94 |
| 171 | 35 | 5.94 | 11.88 |
| 223 | 35 | 0.99 | 12.87 |
| 344 | 35 | 1.98 | 14.85 |
| 355 | 35 | 13.86 | 28.71 |
| 410 | 35 | 8.91 | 37.62 |
| 29 | 36 | 1.98 | 1.98 |
| 40 | 36 | 13.86 | 15.84 |
| 95 | 36 | 8.91 | 24.75 |
| 224 | 36 | 1.98 | 26.73 |
| 247 | 36 | 3.96 | 30.69 |
| 269 | 36 | 5.94 | 36.63 |
| 321 | 36 | 0.99 | 37.62 |
| 6 | 37 | 0.99 | 0.99 |
| 127 | 37 | 1.98 | 2.97 |
| 138 | 37 | 13.86 | 16.83 |
| 193 | 37 | 14.91 | 31.74 |
| 322 | 37 | 1.98 | 33.72 |
| 345 | 37 | 3.96 | 37.68 |
| 367 | 37 | 5.94 | 43.62 |
| 7 | 38 | 1.98 | 1.98 |
| 30 | 38 | 3.96 | 5.94 |
| 52 | 38 | 5.94 | 11.88 |
| 104 | 38 | 0.99 | 12.87 |
| 225 | 38 | 1.98 | 14.85 |
| 236 | 38 | 13.86 | 28.71 |
| 291 | 38 | 8.91 | 37.62 |
| 105 | 39 | 1.98 | 1.98 |
| 128 | 39 | 3.96 | 5.94 |
| 150 | 39 | 5.94 | 11.88 |
| 202 | 39 | 1.99 | 13.87 |
| 323 | 39 | 1.98 | 15.85 |
| 334 | 39 | 13.86 | 29.71 |
| 389 | 39 | 8.91 | 38.62 |
| 8 | 40 | 1.98 | 1.98 |
| 19 | 40 | 13.86 | 15.84 |
| 74 | 40 | 8.91 | 24.75 |
| 203 | 40 | 2.98 | 27.73 |
| 226 | 40 | 3.96 | 31.69 |
| 248 | 40 | 5.94 | 37.63 |
| 300 | 40 | 0.99 | 38.62 |
| 106 | 41 | 1.98 | 1.98 |
| 117 | 41 | 13.86 | 15.84 |
| 172 | 41 | 8.91 | 24.75 |
| 301 | 41 | 1.98 | 26.73 |
| 324 | 41 | 3.96 | 30.69 |
| 346 | 41 | 5.94 | 36.63 |
| 398 | 41 | 0.99 | 37.62 |
| 9 | 42 | 3.96 | 3.96 |
| 31 | 42 | 5.94 | 9.9 |
| 83 | 42 | 0.99 | 10.89 |
| 204 | 42 | 3.98 | 14.87 |
| 215 | 42 | 13.86 | 28.73 |
| 270 | 42 | 8.91 | 37.64 |
| 399 | 42 | 1.98 | 39.62 |
| 84 | 43 | 1.98 | 1.98 |
| 107 | 43 | 3.96 | 5.94 |
| 129 | 43 | 5.94 | 11.88 |
| 181 | 43 | 0.99 | 12.87 |
| 302 | 43 | 1.98 | 14.85 |
| 313 | 43 | 16.86 | 31.71 |
| 368 | 43 | 8.91 | 40.62 |
| 53 | 44 | 8.91 | 8.91 |
| 182 | 44 | 1.98 | 10.89 |
| 205 | 44 | 7.96 | 18.85 |
| 227 | 44 | 5.94 | 24.79 |
| 279 | 44 | 0.99 | 25.78 |
| 400 | 44 | 1.98 | 27.76 |
| 411 | 44 | 13.86 | 41.62 |
| 85 | 45 | 1.98 | 1.98 |
| 96 | 45 | 21.86 | 23.84 |
| 151 | 45 | 8.91 | 32.75 |
| 280 | 45 | 1.98 | 34.73 |
| 303 | 45 | 3.96 | 38.69 |
| 325 | 45 | 5.94 | 44.63 |
| 377 | 45 | 0.99 | 45.62 |
| 10 | 46 | 5.94 | 5.94 |
| 62 | 46 | 0.99 | 6.93 |
| 183 | 46 | 1.98 | 8.91 |
| 194 | 46 | 21.86 | 30.77 |
| 249 | 46 | 8.91 | 39.68 |
| 378 | 46 | 1.98 | 41.66 |
| 401 | 46 | 3.96 | 45.62 |
| 63 | 47 | 1.98 | 1.98 |
| 86 | 47 | 3.96 | 5.94 |
| 108 | 47 | 5.94 | 11.88 |
| 160 | 47 | 0.99 | 12.87 |
| 281 | 47 | 1.98 | 14.85 |
| 292 | 47 | 13.86 | 28.71 |
| 347 | 47 | 8.91 | 37.62 |
| 32 | 48 | 8.91 | 8.91 |
| 161 | 48 | 1.98 | 10.89 |
| 184 | 48 | 3.96 | 14.85 |
| 206 | 48 | 8.94 | 23.79 |
| 258 | 48 | 0.99 | 24.78 |
| 379 | 48 | 1.98 | 26.76 |
| 390 | 48 | 13.86 | 40.62 |
| 64 | 49 | 1.98 | 1.98 |
| 75 | 49 | 13.86 | 15.84 |
| 130 | 49 | 8.91 | 24.75 |
| 259 | 49 | 1.98 | 26.73 |
| 282 | 49 | 3.96 | 30.69 |
| 304 | 49 | 5.94 | 36.63 |
| 356 | 49 | 0.99 | 37.62 |
| 41 | 50 | 0.99 | 0.99 |
| 162 | 50 | 1.98 | 2.97 |
| 173 | 50 | 13.86 | 16.83 |
| 228 | 50 | 8.91 | 25.74 |
| 357 | 50 | 1.98 | 27.72 |
| 380 | 50 | 3.96 | 31.68 |
| 402 | 50 | 5.94 | 37.62 |
| 42 | 51 | 1.98 | 1.98 |
| 65 | 51 | 3.96 | 5.94 |
| 87 | 51 | 6.94 | 12.88 |
| 139 | 51 | 0.99 | 13.87 |
| 260 | 51 | 1.98 | 15.85 |
| 271 | 51 | 13.86 | 29.71 |
| 326 | 51 | 8.91 | 38.62 |
| 11 | 52 | 8.91 | 8.91 |
| 140 | 52 | 1.98 | 10.89 |
| 163 | 52 | 3.96 | 14.85 |
| 185 | 52 | 5.94 | 20.79 |
| 237 | 52 | 0.99 | 21.78 |
| 358 | 52 | 1.98 | 23.76 |
| 369 | 52 | 13.86 | 37.62 |
| 43 | 53 | 1.98 | 1.98 |
| 54 | 53 | 13.86 | 15.84 |
| 109 | 53 | 8.91 | 24.75 |
| 238 | 53 | 1.98 | 26.73 |
| 261 | 53 | 3.96 | 30.69 |
| 283 | 53 | 5.94 | 36.63 |
| 335 | 53 | 0.99 | 37.62 |
| 20 | 54 | 0.99 | 0.99 |
| 141 | 54 | 1.98 | 2.97 |
| 152 | 54 | 13.86 | 16.83 |
| 207 | 54 | 8.91 | 25.74 |
| 336 | 54 | 1.98 | 27.72 |
| 359 | 54 | 3.96 | 31.68 |
| 381 | 54 | 5.94 | 37.62 |
| 21 | 55 | 1.98 | 1.98 |
| 44 | 55 | 3.96 | 5.94 |
| 66 | 55 | 5.94 | 11.88 |
| 118 | 55 | 0.99 | 12.87 |
| 239 | 55 | 1.98 | 14.85 |
| 250 | 55 | 13.86 | 28.71 |
| 305 | 55 | 8.91 | 37.62 |
| 119 | 56 | 1.98 | 1.98 |
| 142 | 56 | 3.96 | 5.94 |
| 164 | 56 | 5.94 | 11.88 |
| 216 | 56 | 0.99 | 12.87 |
| 337 | 56 | 1.98 | 14.85 |
| 348 | 56 | 13.86 | 28.71 |
| 403 | 56 | 8.91 | 37.62 |
| 22 | 57 | 1.98 | 1.98 |
| 33 | 57 | 13.86 | 15.84 |
| 88 | 57 | 17.91 | 33.75 |
| 217 | 57 | 1.98 | 35.73 |
| 240 | 57 | 3.96 | 39.69 |
| 262 | 57 | 5.94 | 45.63 |
| 314 | 57 | 0.99 | 46.62 |
| 120 | 58 | 1.98 | 1.98 |
| 131 | 58 | 13.86 | 15.84 |
| 186 | 58 | 8.91 | 24.75 |
| 315 | 58 | 1.98 | 26.73 |
| 338 | 58 | 3.96 | 30.69 |
| 360 | 58 | 5.94 | 36.63 |
| 412 | 58 | 1.99 | 38.62 |
| 23 | 59 | 3.96 | 3.96 |
| 45 | 59 | 5.94 | 9.9 |
| 97 | 59 | 1.99 | 11.89 |
| 218 | 59 | 1.98 | 13.87 |
| 229 | 59 | 13.86 | 27.73 |
| 284 | 59 | 8.91 | 36.64 |
Without PARTITION BY, spending leaks across customers. Without final ORDER BY, display order is not guaranteed.
Advanced · tied amount bands
Keep the two highest distinct invoice amounts per customer, including ties.
Hint
DENSE_RANK counts distinct amounts. Omit InvoiceId from its ordering and filter at an outer level.
Solution and checked result
Advanced solution
Keep the two highest distinct invoice amounts per customer, including ties.
WITH ranked AS (
SELECT InvoiceId, CustomerId, Total,
DENSE_RANK() OVER (
PARTITION BY CustomerId ORDER BY Total DESC
) AS AmountRank FROM Invoice
)
SELECT InvoiceId, CustomerId, Total, AmountRank
FROM ranked WHERE AmountRank <= 2
ORDER BY CustomerId, AmountRank, InvoiceId;Show all 118 recordsShow first 10 records
| InvoiceId | CustomerId | Total | AmountRank |
|---|---|---|---|
| 327 | 1 | 13.86 | 1 |
| 382 | 1 | 8.91 | 2 |
| 12 | 2 | 13.86 | 1 |
| 67 | 2 | 8.91 | 2 |
| 110 | 3 | 13.86 | 1 |
| 165 | 3 | 8.91 | 2 |
| 208 | 4 | 15.86 | 1 |
| 263 | 4 | 8.91 | 2 |
| 306 | 5 | 16.86 | 1 |
| 361 | 5 | 8.91 | 2 |
| 404 | 6 | 25.86 | 1 |
| 46 | 6 | 8.91 | 2 |
| 89 | 7 | 18.86 | 1 |
| 144 | 7 | 8.91 | 2 |
| 187 | 8 | 13.86 | 1 |
| 242 | 8 | 8.91 | 2 |
| 285 | 9 | 13.86 | 1 |
| 340 | 9 | 8.91 | 2 |
| 383 | 10 | 13.86 | 1 |
| 25 | 10 | 8.91 | 2 |
| 68 | 11 | 13.86 | 1 |
| 123 | 11 | 8.91 | 2 |
| 166 | 12 | 13.86 | 1 |
| 221 | 12 | 8.91 | 2 |
| 264 | 13 | 13.86 | 1 |
| 319 | 13 | 8.91 | 2 |
| 362 | 14 | 13.86 | 1 |
| 4 | 14 | 8.91 | 2 |
| 47 | 15 | 13.86 | 1 |
| 102 | 15 | 9.91 | 2 |
| 145 | 16 | 13.86 | 1 |
| 200 | 16 | 8.91 | 2 |
| 243 | 17 | 13.86 | 1 |
| 298 | 17 | 10.91 | 2 |
| 341 | 18 | 13.86 | 1 |
| 396 | 18 | 8.91 | 2 |
| 26 | 19 | 13.86 | 1 |
| 81 | 19 | 8.91 | 2 |
| 124 | 20 | 13.86 | 1 |
| 179 | 20 | 8.91 | 2 |
| 222 | 21 | 13.86 | 1 |
| 277 | 21 | 8.91 | 2 |
| 320 | 22 | 13.86 | 1 |
| 375 | 22 | 8.91 | 2 |
| 5 | 23 | 13.86 | 1 |
| 60 | 23 | 8.91 | 2 |
| 103 | 24 | 15.86 | 1 |
| 158 | 24 | 8.91 | 2 |
| 201 | 25 | 18.86 | 1 |
| 256 | 25 | 8.91 | 2 |
| 299 | 26 | 23.86 | 1 |
| 354 | 26 | 8.91 | 2 |
| 397 | 27 | 13.86 | 1 |
| 39 | 27 | 8.91 | 2 |
| 82 | 28 | 13.86 | 1 |
| 311 | 28 | 11.94 | 2 |
| 180 | 29 | 13.86 | 1 |
| 235 | 29 | 8.91 | 2 |
| 278 | 30 | 13.86 | 1 |
| 333 | 30 | 8.91 | 2 |
| 376 | 31 | 13.86 | 1 |
| 18 | 31 | 8.91 | 2 |
| 61 | 32 | 13.86 | 1 |
| 116 | 32 | 8.91 | 2 |
| 159 | 33 | 13.86 | 1 |
| 214 | 33 | 8.91 | 2 |
| 257 | 34 | 13.86 | 1 |
| 312 | 34 | 10.91 | 2 |
| 355 | 35 | 13.86 | 1 |
| 410 | 35 | 8.91 | 2 |
| 40 | 36 | 13.86 | 1 |
| 95 | 36 | 8.91 | 2 |
| 193 | 37 | 14.91 | 1 |
| 138 | 37 | 13.86 | 2 |
| 236 | 38 | 13.86 | 1 |
| 291 | 38 | 8.91 | 2 |
| 334 | 39 | 13.86 | 1 |
| 389 | 39 | 8.91 | 2 |
| 19 | 40 | 13.86 | 1 |
| 74 | 40 | 8.91 | 2 |
| 117 | 41 | 13.86 | 1 |
| 172 | 41 | 8.91 | 2 |
| 215 | 42 | 13.86 | 1 |
| 270 | 42 | 8.91 | 2 |
| 313 | 43 | 16.86 | 1 |
| 368 | 43 | 8.91 | 2 |
| 411 | 44 | 13.86 | 1 |
| 53 | 44 | 8.91 | 2 |
| 96 | 45 | 21.86 | 1 |
| 151 | 45 | 8.91 | 2 |
| 194 | 46 | 21.86 | 1 |
| 249 | 46 | 8.91 | 2 |
| 292 | 47 | 13.86 | 1 |
| 347 | 47 | 8.91 | 2 |
| 390 | 48 | 13.86 | 1 |
| 206 | 48 | 8.94 | 2 |
| 75 | 49 | 13.86 | 1 |
| 130 | 49 | 8.91 | 2 |
| 173 | 50 | 13.86 | 1 |
| 228 | 50 | 8.91 | 2 |
| 271 | 51 | 13.86 | 1 |
| 326 | 51 | 8.91 | 2 |
| 369 | 52 | 13.86 | 1 |
| 11 | 52 | 8.91 | 2 |
| 54 | 53 | 13.86 | 1 |
| 109 | 53 | 8.91 | 2 |
| 152 | 54 | 13.86 | 1 |
| 207 | 54 | 8.91 | 2 |
| 250 | 55 | 13.86 | 1 |
| 305 | 55 | 8.91 | 2 |
| 348 | 56 | 13.86 | 1 |
| 403 | 56 | 8.91 | 2 |
| 88 | 57 | 17.91 | 1 |
| 33 | 57 | 13.86 | 2 |
| 131 | 58 | 13.86 | 1 |
| 186 | 58 | 8.91 | 2 |
| 229 | 59 | 13.86 | 1 |
| 284 | 59 | 8.91 | 2 |
This keeps two amount bands, not necessarily two rows. RANK <= 2 may omit the second distinct amount if the highest amount is tied.
References and next steps
- SQLite window functions and frames
- SQLite SELECT processing
- SQLite EXPLAIN QUERY PLAN
- PostgreSQL window-function tutorial
Download every example and solution · Related: JOINs vs Subqueries · SQL & Data Skills.
Corrections: report an issue with the query, SQLite version and expected result. AI-assisted writing with automated SQL checks and independent technical review.
