![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с запросом MYSQL ... [MySQL]
sholomgf © (2007-04-10 23:27:00)Здравствуйте! Есть таблица. В ней 2 столбца: field1, field2.
Забиты к примеру значения:
field1 field2
www 1
xxx 3
xxx 2
xxx 1
www 2
В результате запроса надо получить
www 3
xxx 6
Тоесть надо сумму по второму полю собрать для уникальных значений из первого
Перепробовал множество запросов с SUM. Ничего правильного не получается. Очень надеюсь на вашу помощь!
sholomgf (2007-04-11 20:48:00) [1]ага. спасибо большое. буду учиться
Jan1 (2007-04-11 19:57:00) [2]
> нет. подскажите пожалуйста
геморроем и увольнением.
А в частности целостность данных, индексы оптимальные не создашь да и с операциями(+,- и т.п.) прийдется только через cast работать.
sholomgf (2007-04-11 19:12:00) [3]нет. подскажите пожалуйста
Jan1 (2007-04-11 18:10:00) [4]
> Так получилось!
мдя :(
а ты понимаешь чем тебе грозит хранение чисел в сроке?
sholomgf (2007-04-11 18:07:00) [5]
> SELECT field1, SUM(cast(field2 as SIGNED)) as SUM_F2 FROM
> table GROUP BY
Так получилось! Огромное всем спасибо.Стало ясно в чём проблема.
Тема закрыта!
Jan1 (2007-04-11 17:50:00) [6]
> тип varchar
> там цифры 1000, 300, 239,56456
ага! и что ты хотел получить при суме строк?
А так?
SELECT field1, SUM(cast(field2 as SIGNED)) as SUM_F2 FROM table GROUP BY 1
Jan1 (2007-04-11 17:47:00) [7]тип поля field2?
sholomgf (2007-04-11 17:27:00) [8]запрос такой
SELECT field1, SUM(field2) FROM table GROUP BY 1
заместо 1 пробовал имя столбца. результат одинаковый
sholomgf (2007-04-11 17:24:00) [9]тип varchar
там цифры 1000, 300, 239,56456
Суммирует неправильно
Если сделать запрос типа
select sum(field2) from t1 тогда сумма верная, а с выводом с группировкаой неверно. Группирует по первому столбцу правильно, получается столько разных записей, сколько их имеется, а вот сумма для них неверная
Sergey13 (2007-04-11 15:58:00) [10]> [10] sholomgf (11.04.07 15:51)
> Считает сумму совершенно неверно!!!!!!!!!
Латинскими цифрами? Прописью с ошибками? Что значит "неверно"? Как проверял? Реальный запрос и структуру таблиы приведи.
sholomgf (2007-04-11 15:51:00) [11]
> SELECT field1, SUM(field2) FROM table GROUP BY 1
Я так делаю! Считает сумму совершенно неверно!!!!!!!!!
И по имени столбца тоже. Стал бы я вопрос писать, если бы всё так получалось....
Плохиш (2007-04-11 12:37:00) [12]
> Jan1 (11.04.07 11:57) [8]
А слабо в своей же ссылке текст на два абзаца выше прочитать и пример к которому Вы соизволии комментарий привести? А также сравнить пример из сылки и пример из [2]?
Jan1 (2007-04-11 11:57:00) [13]
> А это к психиатру...
попроще чувырло. читай мануал к серверу - мож полегчает.
http://www.mysql.ru/docs/man/Group_by_functions.html
а именно:
В ANSI SQL к предложению GROUP BY необходимо добавлять customer.name. В MySQL, если работа происходит не в режиме ANSI, это имя избыточно.
Не используйте данное свойство, если столбцы, пропущенные в части GROUP BY, не являются уникальными в данной группе! Возможны непредсказуемые результаты.
Johnmen (2007-04-11 11:42:00) [14]
> Плохиш © (11.04.07 11:28) [6]
> Чем "лучше"?
Ближе к истокам. :)
Т.е. к стандарту...
Плохиш (2007-04-11 11:28:00) [15]
> Jan1 (11.04.07 10:00) [5]
>
> > SELECT field1, SUM(field2) FROM table GROUP BY 1
>
> лучше указать явно поле по которому группировка.
Чем "лучше"?
> а еще лучше с именем таблицы.
А это к психиатру...
Jan1 (2007-04-11 10:00:00) [16]
> SELECT field1, SUM(field2) FROM table GROUP BY 1
лучше указать явно поле по которому группировка. а еще лучше с именем таблицы.
Jan1 (2007-04-11 09:56:00) [17]
> Читать GROUP BY в букваре по SQL.
>
не поможет. так как
> Перепробовал множество запросов с SUM
Явный игнор советов, которые ему сервер давал.
boristt (2007-04-11 09:56:00) [18]А в общем Johnmen прав. Сначала синтаксис SQL выучи
boristt (2007-04-11 09:55:00) [19]SELECT field1, SUM(field2) FROM table GROUP BY 1
Johnmen (2007-04-11 09:37:00) [20]Читать GROUP BY в букваре по SQL.