Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

Помогите с запросом MYSQL ...   Найти похожие ветки 

 
sholomgf   (2007-04-10 23:27) [0]

Здравствуйте! Есть таблица. В ней 2 столбца: field1, field2.
Забиты к примеру значения:
field1    field2
www      1
xxx        3
xxx        2
xxx        1
www      2

В результате запроса надо получить
www   3
xxx      6

Тоесть надо сумму по второму полю собрать для уникальных значений из первого
Перепробовал множество запросов с SUM. Ничего правильного не получается. Очень надеюсь на вашу помощь!


 
Johnmen ©   (2007-04-11 09:37) [1]

Читать GROUP BY в букваре по SQL.


 
boristt   (2007-04-11 09:55) [2]

SELECT field1, SUM(field2) FROM table GROUP BY 1


 
boristt   (2007-04-11 09:56) [3]

А в общем Johnmen прав. Сначала синтаксис SQL выучи


 
Jan1   (2007-04-11 09:56) [4]


> Читать GROUP BY в букваре по SQL.
>

не поможет. так как

> Перепробовал множество запросов с SUM

Явный игнор советов, которые ему сервер давал.


 
Jan1   (2007-04-11 10:00) [5]


> SELECT field1, SUM(field2) FROM table GROUP BY 1

лучше указать явно поле по которому группировка. а еще лучше с именем таблицы.


 
Плохиш ©   (2007-04-11 11:28) [6]


> Jan1   (11.04.07 10:00) [5]
>
> > SELECT field1, SUM(field2) FROM table GROUP BY 1
>
> лучше указать явно поле по которому группировка.

Чем "лучше"?

> а еще лучше с именем таблицы.

А это к психиатру...


 
Johnmen ©   (2007-04-11 11:42) [7]


> Плохиш ©   (11.04.07 11:28) [6]
> Чем "лучше"?

Ближе к истокам. :)
Т.е. к стандарту...


 
Jan1   (2007-04-11 11:57) [8]


> А это к психиатру...

попроще чувырло. читай мануал к серверу - мож полегчает.
http://www.mysql.ru/docs/man/Group_by_functions.html
а именно:

В ANSI SQL к предложению GROUP BY необходимо добавлять customer.name. В MySQL, если работа происходит не в режиме ANSI, это имя избыточно.

Не используйте данное свойство, если столбцы, пропущенные в части GROUP BY, не являются уникальными в данной группе! Возможны непредсказуемые результаты.


 
Плохиш ©   (2007-04-11 12:37) [9]


> Jan1   (11.04.07 11:57) [8]

А слабо в своей же ссылке текст на два абзаца выше прочитать и пример к которому Вы соизволии комментарий привести? А также сравнить пример из сылки и пример из [2]?


 
sholomgf   (2007-04-11 15:51) [10]


> SELECT field1, SUM(field2) FROM table GROUP BY 1

Я так делаю! Считает сумму совершенно неверно!!!!!!!!!
И по имени столбца тоже. Стал бы я вопрос писать, если бы всё так получалось....


 
Sergey13 ©   (2007-04-11 15:58) [11]

> [10] sholomgf   (11.04.07 15:51)
> Считает сумму совершенно неверно!!!!!!!!!

Латинскими цифрами? Прописью с ошибками? Что значит "неверно"? Как проверял? Реальный запрос и структуру таблиы приведи.


 
sholomgf   (2007-04-11 17:24) [12]

тип varchar
там цифры  1000, 300, 239,56456
Суммирует неправильно
Если сделать запрос типа
select sum(field2) from t1 тогда сумма верная, а с выводом с группировкаой неверно. Группирует по первому столбцу правильно, получается столько разных записей, сколько их имеется, а вот сумма для них неверная


 
sholomgf   (2007-04-11 17:27) [13]

запрос такой
SELECT field1, SUM(field2) FROM table GROUP BY 1
заместо 1 пробовал имя столбца. результат одинаковый


 
Jan1   (2007-04-11 17:47) [14]

тип поля field2?


 
Jan1   (2007-04-11 17:50) [15]


> тип varchar
> там цифры  1000, 300, 239,56456

ага! и что ты хотел получить при суме строк?
А так?

SELECT field1, SUM(cast(field2 as SIGNED)) as SUM_F2 FROM table GROUP BY 1


 
sholomgf   (2007-04-11 18:07) [16]


> SELECT field1, SUM(cast(field2 as SIGNED)) as SUM_F2 FROM
> table GROUP BY

Так получилось! Огромное всем спасибо. Стало ясно в чём проблема.
Тема закрыта!


 
Jan1   (2007-04-11 18:10) [17]


> Так получилось!

мдя :(
а ты понимаешь чем тебе грозит хранение чисел в сроке?


 
sholomgf   (2007-04-11 19:12) [18]

нет. подскажите пожалуйста


 
Jan1   (2007-04-11 19:57) [19]


> нет. подскажите пожалуйста

геморроем и увольнением.
А в частности целостность данных, индексы оптимальные не создашь да и с операциями(+,- и т.п.) прийдется только через cast работать.


 
sholomgf   (2007-04-11 20:48) [20]

ага. спасибо большое. буду учиться



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
15-1181138491
infom
2007-06-06 18:01
2007.07.08
Написание словаря


15-1181393189
Nucer
2007-06-09 16:46
2007.07.08
Разрешено ли испольовать BlowFish?


11-1164572053
Psychedelic
2006-11-26 23:14
2007.07.08
Предложение для всех.


15-1180009272
Углук
2007-05-24 16:21
2007.07.08
Как найти хэндл скроллбара у работающей программы?


2-1181677472
Gaist
2007-06-12 23:44
2007.07.08
Создание авто- загрузочной проги.