|
Использование оператора case в SQLite
|
|||
---|---|---|---|
#18+
Я написал запрос для вычисления процентного соотношения количества строк [country] минус 1 к общему количеству этих строк. Также если при выборе существуют строки [cc] со значениями WO, EP, EA, OA, AP, GC -- [prc] должно принимать значение [100%]. Таблица формируется так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Никак не могу выражение (count(country) - 1)/count(country) умножить на 100 и округлить до первого знака после запятой. Результат моего запроса выглядит так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2017, 20:06 |
|
Использование оператора case в SQLite
|
|||
---|---|---|---|
#18+
EITKpollНикак не могу выражение (count(country) - 1)/count(country) умножить на 100 и округлить до первого знака после запятой. ( (100.0 * (count(country) - 1)) / count(country) ) || ' %' ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2017, 06:17 |
|
Использование оператора case в SQLite
|
|||
---|---|---|---|
#18+
White Owl( (100.0 * (count(country) - 1)) / count(country) ) || ' %' Я добавил ROUND. Теперь, то что надо. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2017, 08:01 |
|
Использование оператора case в SQLite
|
|||
---|---|---|---|
#18+
Мне пришлось вернуться к этому вопросу о доли от общего количества. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Проверил результат запроса, используя ручку и бумагу. Я обнаружил, что не учёл момент, когда ячейки [cc] и [country] совпадают в группе. И ещё не учёл, когда в группе могут быть совпадающий один [cc] и один [country], в этом случае [prc] должен быть 0. А если одиночные [cc] и [country] не совпадают, тогда [prc] должен быть 100. Надо как-то из [count(country)] вычитать совпадающие [cc], далее делить на count(cc) и умножать на 100. Можно ли перезаписать таблицу [patent_country], сгруппировав [group by cc], и заменив ячейки в [country] на NULL, а потом использовать [where (country is not null)] для подсчёта [count(country)]. Не сочтите за бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2017, 00:36 |
|
|
start [/forum/topic.php?fid=54&msg=39427103&tid=2008512]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 390ms |
0 / 0 |