Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 12:53 03.06.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема Group functions in MySQL  
Автор toranaga ("razbirach")
Публикувано07.03.03 11:33



DB: MySQL
Version: 3.23.49a

Имам следната заявка
SELECT p.PACKAGE_ID,ps.SET_ID,count(t.THUMB_SAMPLE_ID)
FROM PACKAGES p,PACKAGE_SETS ps,THUMB_SAMPLES t
WHERE p.PACKAGE_SETS_ID = ps.PACKAGE_SETS_ID and ps.SET_ID = t.SET_ID and p.PACKAGE_ID = '4' GROUP BY ps.SET_ID

Работи си ОК, получавам следното:
PACKAGE_ID SET_ID count(t.THUMB_SAMPLE_ID)
4 25 71
4 29 75
4 39 68


Въпроса ми е има ли начин да получа сумата в колоната count(t.THUMB_SAMPLE_ID), т.е. нещо от рода на sum(count(t.THUMB_SAMPLE_ID))?



Тема Re: Group functions in MySQLнови [re: toranaga]  
АвторBaj L\bo (Нерегистриран)
Публикувано07.03.03 21:26



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

Позволявам си да отбележа че в селект листа имаш p.PACKAGE_ID,ps.SET_ID, докато в груп бай имаш само ps.SET_ID, което не е стандартен SQL. Виждам че ти работи, но в друга субд или няма да работи, или резултата ще е различен.



Тема Re: Group functions in MySQLнови [re: Baj L\bo]  
Автор toranaga ("razbirach")
Публикувано08.03.03 11:23



Hi,
Мерси за отговора - оказа се че трябва да групирам по p.PACKAGE_ID, за да получа каквото искам. Ако не групирам по нищо, ми дава грешка че не може да използва group функция без group by, a ако групирам по двете (независимо в какъв ред), получавам същото като при group by s.SET_ID).
Да, чувал съм за разлики при ползване на group by при други СУБД, но засега не съм се сблъсквал с тях. Как трябва да е според стандартния SQL?
Още веднъж, благодаря ти.



Тема Re: Group functions in MySQLнови [re: toranaga]  
Автор salle (минаващ)
Публикувано08.03.03 17:38



Според стандарта можеш да групираш по дадена колона или alias само ако се появяван в частта SELECT

SELECT name, SUM(points) GROUP BY name;

В MySQL е допустимо да направиш:
SELECT SUM(points) GROUP BY name;

Както и друг път съм казвал интерпретацията на резултатите е доста сложничка.

Я обясни Торанага Сан какво се опитваш да постигнеш?

Групирането по повече от една колона е съвсем друго нещо и си има доста нормална логика.

SELECT seller, product, sum(sell_price) FROM sells GROUP by seller, product;

Ако ти трябват междунни суми - можеш да опиташ WITH CUBE и WITH ROLLUP, но ще получиш съобщенийце, че още не се поддържат от тази версия на MySQL - трябваше да се появят в 4.1 ама засега има малко проблеми.



Тема Re: Group functions in MySQLнови [re: salle]  
Автор toranaga ("razbirach")
Публикувано09.03.03 00:15



Имам следното:
Имам SETS, които грубо казано се състоят от картинки (THUMB_SAMPLES)
връзката тук е 1:n, в THUMB_SAMPLES си имам колона SEТ_ID за нея
После имам пакети (PACKAGES), които се състоят от сетове. Връзката между тях е много към много и се пази в таблицата PACKAGE_SETS
Та аз се правя нещо доста тривиално - искам да преброя колко картинки имам в един пакет, който се състои от 3 сета примерно...
Не знам защо, нещо не го подкарах от първия отначало, най-доброто което постигнах е че получих бройката сет по сет и после ги събрах
Е, днес го подкарах вече....
Колкото до групирането по повече от една колона, просто експериментирах и споделих резултата, защото ми се стори странно че при различен ред на колоните в group by, резултата си беше един и същ.
Та това е... нищо особено.




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.