У меня есть таблица, как показано ниже. Я хочу получить столбец Flag
таким образом, чтобы примерно в верхних 90% строк каждого раздела было TypeA
, а в оставшихся 10%
строк будет иметь TypeB
в качестве флага.
+------+----+
| City | id |
+------+----+
| A | 1A |
| A | 2A |
| A | 3A |
| A | 4A |
| A | 5A |
| B | 1B |
| B | 2B |
| B | 3B |
| B | 4B |
| B | 5B |
| B | 6B |
| D | 1D |
| D | 2D |
| D | 3D |
| D | 4D |
| D | 5D |
| D | 6D |
| D | 7D |
| D | 8D |
+------+----+
Желаемый результат
+------+----+-------+
| City | id | Flag |
+------+----+-------+
| A | 1A | TypeA |
| A | 2A | TypeA |
| A | 3A | TypeA |
| A | 4A | TypeA | // Approximately Top 90% of rows for City A: Flag Type A
| A | 5A | TypeB | // Approximately below 10% of rows for City A: Flag Type B
| B | 1B | TypeA |
| B | 2B | TypeA |
| B | 3B | TypeA |
| B | 4B | TypeA |// Approximately Top 90% of rows for City B: Flag Type A
| B | 5B | TypeB |// Approximately below 10% of rows for City B: Flag Type B
| B | 6B | TypeB |
| D | 1D | TypeA |
| D | 2D | TypeA |
| D | 3D | TypeA |
| D | 4D | TypeA |
| D | 5D | TypeA |
| D | 6D | TypeA |
| D | 7D | TypeA |
| D | 8D | TypeB |
+------+----+-------+
Любая помощь будет по достоинству оценена.
SQL Fiddle