Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2016, 11:14   #1
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию SQLite, результат зависит от наличия индекса

Всем привет,

Есть некий SELECT, довольно простой.
Беда в том, что если есть индекс результат один, а если индекса нет, результат другой (правильный).
Во вложении - полный пример проблемы.

Вопрос - WTF, что я делаю не так?
SQLite version 3.13.0
Вложения
Тип файла: rar Error.rar (347 байт, 13 просмотров)
waleri вне форума Ответить с цитированием
Старый 29.05.2016, 11:32   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

SQLite тоже, как и мускул гроуп бай позволяет использовать? Все поля которые без агрегатных функций в списке селекта выбираются не знамо как ваще-то. Видимо, если без индекса, то это зависит от физического расположения данных в таблицы. С индексом - от расположения в соответствии с индексом. Предположение. Как реализовано в движке великая тайна
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.05.2016, 12:53   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Так там ORDER BY есть...
waleri вне форума Ответить с цитированием
Старый 29.05.2016, 13:39   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ORDER BY сортирует результат выборки и не оказывает влияния на сам процесс выборки. А правильный запрос с group by должен иметь примерно такой вид:
Код:
SELECT field1,SUM(field2) FROM MyTable GROUP BY field1
И коль СУБД позволяет так запрос сделать:
Код:
SELECT field1,field2 FROM MyTable GROUP BY field1
то это значит, что значение поля field2 в общем случае не предсказуемо, и содержит одно из значений этого поля у сгруппированных записей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.05.2016 в 13:46.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
продолжительность жизни зависит от знака зодиака Hallo Свободное общение 27 28.02.2014 15:34
Температура ноута зависит от ОС ? Оо 13th Операционные системы общие вопросы 7 30.08.2010 15:13
зависит ли скорость работы макроса от порядка условий? kievlyanin Microsoft Office Excel 9 29.05.2009 12:30
Шифрация Русского Языка (С++/Но помоему не зависит) Balizard Помощь студентам 2 02.05.2009 09:27