Главная страница
    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.48 MB
Время: 0.029 c
2-1181889608
Баян 555
2007-06-15 10:40
2007.07.08
перевод в читабельный вид


9-1156415887
B-on
2006-08-24 14:38
2007.07.08
текстуры


15-1181247521
Slimer
2007-06-08 00:18
2007.07.08
Вопрос президенту


1-1178609277
DelphiLexx
2007-05-08 11:27
2007.07.08
Как в режиме отладки посмотреть поле Record записи


15-1181473360
исследователь
2007-06-10 15:02
2007.07.08
Чьи это стихи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский