powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Отобрать строки у которых сумма больше определенного значения
12 сообщений из 12, страница 1 из 1
Отобрать строки у которых сумма больше определенного значения
    #39646470
Waddonator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые форумчане. Никак не могу сообразить, как сформировать текст запроса. Имеется таблица типа:

id|parameter|question|VALUE
1 |FIRST |1 | 10
2 |FIRST |1 | 10
3 |FIRST |2 | 10
4 |FIRST |2 | 10
5 |SECOND |1 | 10
6 |SECOND |1 | 10
7 |SECOND |2 | 2
8 |SECOND |2 | 2

Нужно выбрать все `parameter` у которых сумма `value` по каждому `question` превышает параметр 10 (к примеру), т.е. должны получить:

parameter|question|SUM(VALUE)
FIRST |1 | 20
FIRST |2 | 20

В примере видно, что параметр 'second' не должен подходить, т.к. у него сумма по второму `question` меньше 10.

Заранее благодарю!
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646471
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaddonatorНужно выбрать все `parameter` у которых сумма `value` по каждому `question` превышает параметр 10 (к примеру), т.е. должны получить:

Нужно выбрать все `parameter` у которых ЗНАЧЕНИЕ `value` по каждому `question` превышает параметр 10

Как пробовал, что получилось?
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646473
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно выбрать суммы `value`по всем `parameter` у которых ЗНАЧЕНИЕ `value` по каждому `question` превышает параметр 10
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646477
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже не так

Нужно выбрать суммы `value`по всем `parameter`+question у которых ЗНАЧЕНИЕ `value` по каждому `question` превышает параметр 10
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646479
Waddonator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот я и прошу помощи, т.к. не могу сообразить сам.

SELECT `parameter`, `question`, SUM(`value`)
FROM `table`
GROUP BY `parameter`, `question`
HAVING (SUM(`value`)>10)

не подходит, т.к. сюда попадает сумма строк 5 и 6. Мне нужно отобрать только те `parameter` у которых сумма всех `value` > 10.
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646480
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaddonatorНужно выбрать все `parameter` у которых сумма `value` по каждому `question` превышает параметр 10А выбираете вы не (parameter), а (parameter,question,SUM(VALUE)). Так что же на самом деле требуется?
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646481
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И озвучьте версию сервера - на 8+ и на более старых решение будет принципиально различным.
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646482
Waddonator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне необходимо правильно написать условие отбора чтобы выбрать только те `parameter` у которых сумма `value` по каждому `question` превышала бы 10.

parameter|question|SUM(VALUE)
FIRST |1 | 20 - подходит
FIRST |2 | 20 - подходит
SECOND |1 | 20 - не подходит, т.к. по `question` 2 - сумма 4
SECOND |2 | 4 - не подходит, т.к. по `question` 2 - сумма 4
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646483
Waddonator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер MySQL 5.7
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646485
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaddonatorSELECT `parameter`, `question`, SUM(`value`)
FROM `table`
GROUP BY `parameter`, `question`
HAVING (SUM(`value`)>10)
.

Код: sql
1.
2.
3.
4.
SELECT `parameter`, `question`, SUM(`value`)
FROM `table`
GROUP BY `parameter`, `question`
HAVING ([color=red]min[/color](`value`)>[color=red]=[/color]10)



Вот так будет более верно.
Но неправильно.
Ибо группируешь ты по parameter+question
А ограничение надо поставить по `parameter`
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646486
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
SELECT `parameter`, `question`, SUM(`value`)
FROM `table`
GROUP BY `parameter`, `question`
HAVING (min(`value`)>=10)



В выборку попадет SECOND 1

Тебе надо определить parameter, в которых value меньше 10 и исключить их из выборки.
...
Рейтинг: 0 / 0
Отобрать строки у которых сумма больше определенного значения
    #39646497
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так

Код: sql
1.
2.
3.
4.
SELECT t.parameter, t.question, SUM(t.val)
FROM t, (select parameter from t group by parameter HAVING (min(val)>=10)) t2
where t.parameter = t2.parameter
GROUP BY t.parameter, t.question



http://www.sqlfiddle.com/#!9/79a4b4/16
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Отобрать строки у которых сумма больше определенного значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]