Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

Помогите с запросом 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.035 c
2-1181652161
evgenij_
2007-06-12 16:42
2007.07.08
Shape


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


2-1181817231
SunriseGirl
2007-06-14 14:33
2007.07.08
Базы данных, работа с компонентами


2-1181811128
kukuikar
2007-06-14 12:52
2007.07.08
Как работать с редактором формул MS Word из своей программы


15-1181043121
@!!ex_
2007-06-05 15:32
2007.07.08
Web Camera + TV





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский