|
Второе место
|
|||
---|---|---|---|
#18+
Всем привет! Ломаю голову как корректно написать запрос выдающий второе место из сортированного списка для Оракла 11g. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
fifa2018sorted выдает список победителей по порядку (1 место, второе, и т.д.), но без ключа сортировки. Доступ к сырым данным считается административно заблокирован. Показать первое место, легко: select * from fifa2018sorted where rownum=1 Показать второе место, сложнее: (select * from fifa2018sorted where rownum<=2) minus (select * from fifa2018sorted where rownum=1) Показать первые три места, в правильном порядке - ещё больше мороки, приходится воссоздавать ключ: Код: plsql 1. 2. 3. 4. 5.
Есть ли проще методы для работы с сортированными представлениями, и разрешены ли такие представления в каком-нибудь из стандартов SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 07:51 |
|
Второе место
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
методы для работы с сортированными представлениями Услышите вы, как обычно, раза с двадцатого. Ну да вода камень точит. Не нужна вам сортировка в представлениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 09:11 |
|
Второе место
|
|||
---|---|---|---|
#18+
Изврат конечно: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 09:57 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL Доступ к сырым данным считается административно заблокирован. Если ключ сортировки недоступен, но по постановке требуется его наличие, то идите к административному ресурсу и требуйте изменения контракта доступного вам представления. Во всём остальном задача не имеет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 10:47 |
|
Второе место
|
|||
---|---|---|---|
#18+
dmdmdm Не нужна вам сортировка в представлениях. Не нужна, и я этим не пользуюсь. Сортированные представления плохо задокументированы и не стандартизованы. Это не означает что у меня нет вопросов о любопытных особенностях Оракла. Мне нравится изучать плохо задокументированые аспекты систем которые выпирают из общей модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 17:32 |
|
Второе место
|
|||
---|---|---|---|
#18+
env Во всём остальном задача не имеет смысла. Это эквивалент "распечатайте третью строчку файла". Если таблица - внешняя. Вас не тревожит что у тюринг-полного языка SQL которым вы владеете нет простого способа решить задачу уровня первого курса? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 17:37 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL Это эквивалент "распечатайте третью строчку файла" Это показатель непонимания концепций. Осильте уже их. Нет, это не эквивалент. У кучи нет третьей строчки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 17:53 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL нет простого способа решить задачу уровня первого курса Добавьте себе в эту задачу: При этом файл читается с N разных мест и строки выдаются в произвольном порядке поступления от источников. Иногда, порядок будет совпадать. На вход повлиять нельзя. Вот вам распечатка файла с одного из источников - проверять будем по ней. А теперь решайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 17:56 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL Вас не тревожит что у тюринг-полного языка SQL которым вы владеете нет простого способа решить задачу уровня первого курса? Опять смешались в кучу кони, люди и залпы тысячи орудий ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 17:59 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL у тюринг-полного языка SQL Ну-ну... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 18:46 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL env Во всём остальном задача не имеет смысла. Это эквивалент "распечатайте третью строчку файла". строки в файле идут в строго определенном порядке, в куче нет напр выбрать второй камень из горки в 100камней какой будет вторым? ps развлекаетесь под солнышком? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 19:09 |
|
Второе место
|
|||
---|---|---|---|
#18+
Stax, то, что ты сказал, его ещё больше запутает. Конечно, SQL имеет дело с кучами (heaps), но реляционная модель - только с множествами (sets). Поэтому для некоторых куч и реляционных отношений ответ окажется одинаковым, то есть построенном на теории вероятности над конечными совокупностями множествами. Но, в то время как существуют кучи, для которых ответ детерминирован в положительном смысле (например, когда вся куча состоит из одинаковых элементов, то второй выбранный из ... будет точно такой же, как первый, либо его не существует), то для множеств он всегда детерминирован в отрицательном - можно гарантировать только то, что второй выбранный из ... элемент будет гарантированно не такой же, как первый (либо его не существует). ps выбранный из ... - подразумевается, с извлечением... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 21:55 |
|
Второе место
|
|||
---|---|---|---|
#18+
booby то для множеств он всегда детерминирован в отрицательном - можно гарантировать только то, что второй выбранный из ... элемент будет гарантированно не такой же, как первый (либо его не существует). На этот предмет есть какая то теорема или определение? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:10 |
|
Второе место
|
|||
---|---|---|---|
#18+
Stax строки в файле идут в строго определенном порядке, в куче нет напр выбрать второй камень из горки в 100камней какой будет вторым? ps развлекаетесь под солнышком? .... stax Строки выбираемые из отсортированного множества идут в строгом порядке, поэтому работает. Код: plsql 1.
Поскольку оракл уважает в этой конструкции внутреннюю сортировку, я заключил что присутствует элемент поддержки упорядоченных множеств. Т.е. не куча камней, а сшитая тетрадка без нумерации страниц. И в некоторых случаях оракл умеет с ней работать как с тетрадкой, и гарантирует тетрадную поддержку в особых случаях. П.с сижу в предпраздничном трафике ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:20 |
|
Второе место
|
|||
---|---|---|---|
#18+
graycode, есть определение множества. После выбора с извлечением любого "первого" элемента, теоретически невозможно извлечь из оставшихся никакой - ни второй, ни любой последующий, такой же, каков оказался первый. И никакой из извлеченных не окажется таким же, как любой предшествующий или любой последующий. Это можно считать следствием определения, но можно считать и определяющим правилом выбора. Если оно выполнилось, значит то, из чего производился выбор, может быть признано за множество во всех подходящих для множества контекстах. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:22 |
|
Второе место
|
|||
---|---|---|---|
#18+
[quot НеофитSQL#22238576] Stax ... Строки выбираемые из отсортированного множества... ... Это химера вашего сознания, следствие недостатка образования. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:23 |
|
Второе место
|
|||
---|---|---|---|
#18+
booby есть определение множества. После выбора с извлечением любого "первого" элемента, теоретически невозможно извлечь из оставшихся никакой - ни второй, ни любой последующий, такой же, каков оказался первый. И никакой из извлеченных не окажется таким же, как любой предшествующий или любой последующий. В общем определении такого граничного условия нет, где вы взяли это определение? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:33 |
|
Второе место
|
|||
---|---|---|---|
#18+
booby НеофитSQL Строки выбираемые из отсортированного множества... .... Это химера вашего сознания, следствие недостатка образования. Внимательно прочитайте код: Код: plsql 1.
И подумайте почему сортировка работает в подзапросе, хотя по вашим словам не должна. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:35 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL Поскольку оракл уважает в этой конструкции внутреннюю сортировку Это ты у Оракла так и спросил - внутреннюю сортировку уважаешь? А то смотри у меня ...)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:37 |
|
Второе место
|
|||
---|---|---|---|
#18+
graycode, вторая часть ответа состоит в том, что эта задача о выборе второго шара при выборе шаров из урны с извлечением. Она решается для любого конкретного состава шаров. Там что-то про условную вероятность и суммирование - не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:39 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL Внимательно прочитайте код: Код: plsql 1.
И подумайте почему сортировка работает в подзапросе, хотя по вашим словам не должна. Этот код работает, потому что когда то это был единственный способ получить набор строк пронумерованный в порядке сортировки и этот способ документирован, но подзапрос и представление это разные вещи и с представлением таких гарантий не дается, т.е. ты пользуешься недокументированным поведением, которое может измениться в зависимости от условий или параметров не сильно коррелирующих на первый взгляд с твоим кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:44 |
|
Второе место
|
|||
---|---|---|---|
#18+
booby вторая часть ответа состоит в том, что эта задача о выборе второго шара при выборе шаров из урны с извлечением. Она решается для любого конкретного состава шаров. Там что-то про условную вероятность и суммирование - не помню. Это уже какое то специальное множество с наложенными ограничениями, при этом такая задача решается даже при условии одинаковости шаров, главное чтобы их было конечное количество, тогда вы сможете извлечь из урны все шары. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:47 |
|
Второе место
|
|||
---|---|---|---|
#18+
Я вижу что определение "упорядоченного множества" может быть незнакомо для тех кто узнал о теории множеств только из учебника SQL. Формальное: https://dic.academic.ru/dic.nsf/ruwiki/1157218 Неформальное: стопка. Стопку можно превратить в кучку (неупорядоченное множество). Все операции для кучек также работают для стопок, т.к. стопка является частным случаем кучки. Для стопок существуют операции, сохраняющее свойство стопок ("перевернуть"), у которых может не быть аналогов для кучек. А могут быть (слить/merge). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:50 |
|
Второе место
|
|||
---|---|---|---|
#18+
НеофитSQL, Про упорядоченное никто не говорил и у тебя нет упорядоченного множества, чего ты никак понять не хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 22:54 |
|
|
start [/forum/topic.php?fid=52&msg=40022171&tid=1880666]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 284ms |
total: | 441ms |
0 / 0 |