Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MySQL]msql - помогите составить запрос, так чтоб максимально производительный 
:(
    Опции темы
realPROme
Дата 1.4.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 20.12.2006

Репутация: нет
Всего: нет



есть таблица с колонками `id`, `a1`, `a2`
тип полей - int, все не уникальные
нужно составить запрос, который выберет `id`, для которого сумма всех `a1` минус `a2` будет максимальной
хелп smile

Добавлено через 3 минуты и 22 секунды
вдогонку: так же интересует выборка `id` с учетом сортировки сумм `a1` минус `a2`
PM MAIL   Вверх
baldina
Дата 1.4.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



что-то вроде 
Код

SELECT id, (a1-a2) AS diff
FROM table
ORDER BY (a1-a2) DESC;
даст отсортированный результат, первая запись - максимальное значение
PM MAIL   Вверх
Feldmarschall
Дата 1.4.2008, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



baldina, решение не удовлетворяет условию.
PM   Вверх
awers
Дата 1.4.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Код

SELECT `id`
FROM `test` 
WHERE `a1` + `a2` = ( 
SELECT max( `a1` + `a2` ) 
FROM `test`) 


про это?

Это сообщение отредактировал(а) awers - 1.4.2008, 23:57
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 1.4.2008, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



И это не удовлетворяет.
PM   Вверх
awers
Дата 2.4.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Конечно я имел в виду минусы )
PM MAIL WWW ICQ Skype   Вверх
Fortop
Дата 2.4.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



хм, если и id неуникальные, то нужна еще и группировка


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
baldina
Дата 2.4.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



видимо непонял сначала условие. если имеется в виду разница между суммой всех а1 и конкретным а2, то можно так (только mysql):
Код

select id, (select sum(a1) from t) - a2 as v from t order by v desc;

PM MAIL   Вверх
Fortop
Дата 2.4.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(baldina @  2.4.2008,  15:36 Найти цитируемый пост)
видимо непонял сначала условие

Если автор вопроса правильно расставит у себя запятые, то условие станет более понятным smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0796 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.