| id | result |
|---|---|
| KLLR | 1 |
| KLLR | 2 |
| KLLR | 3 |
| KLLR | 4 |
| OLRQ | 1 |
| OLRQ | 2 |
| PKRD | 1 |
| PKRD | 2 |
| PKRD | 3 |
SQL increment value from 1 to onward based on other fields and the output calculated field is the result. Please view the image for more clarity. And below is my SQL which I tried. I want the result in another calculated field as you can see in the image.
SELECT id, SUM(COUNT(id)) AS result
FROM t1
GROUP BY id
CodePudding user response:
A simple row number should work for you here:
SELECT id,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS Result
FROM t1;
You tagged both MySQL and SQL Server. Do note that they are completely different products but the same should work in both. MySQL introduced ROW_NUMBER() in 8.0.
Toward HansG's comment,
SELECT id,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY (SELECT NULL)) AS Result
FROM t1;
will give you the random ordering mentioned.
