Разделяне на резултата?

14 отговора 910 прегледа
#1

Разделяне на резултата?

Здравейте!
Някой може ли да ми даде вариянт за разделяне на резултата от следното запитване към mysql от php:

SELECT t1.title, SUM(t2.value) AS v1
FROM table1 t1, table2 t2
WHERE t1.id=t2.id
GROUP BY t1.title
SORT BY v1


така че да върне като резултат от заявката първите десет от горната заявка плюс сумата от всички останали ("other", SUM v1)

Отговор
в отговор на mysql #2

Re: Разделяне на резултата?

Izpolzvai TOP 10, Union All, Having SUM()


Отговор
в отговор на nea #3

Re: Разделяне на резултата?

Здравей!
Благодаря за отговора!
Ще може ли да напишеш малко по-подробно как го виждаш че така не разбирам точно какво имаш предвид , а и mysql няма top а limit, което променя синтаксиса, та затова е важно да напишеш малко код

Отговор
в отговор на mysql #4

Re: Разделяне на резултата?

Zdravei,

mai ne sam protchela do kraja ..., sorry s mysql ne moga da ti pomogna,
rabotja predimno s Transact-SQL i njamam predstava kakvi sa razlikite s mysql...

Отговор
в отговор на mysql #5

Re: Разделяне на резултата?

SELECT t1.title, SUM(t2.value) AS v1
FROM table1 t1, table2 t2
WHERE t1.id=t2.id
GROUP BY t1.title
ORDER BY v1
LIMIT 10;

това със сумата на всички останали обаче е съвсем друга история освен ако предварително не знаеш точно колко и кои са тези останали

salle.online.bg/sig
Отговор
в отговор на nea #6

Re: Разделяне на резултата?

Здравей!
Разяснението го направих за да разбереш че има разлики и е важно да напишеш код за това което мислиш. Аз като разбера идеята бих могъл да си я преработя за mysql ако е възможно разбира се, но така или шначе би ми дало насока в която да търся решението.

Отговор
в отговор на salle #7

Re: Разделяне на резултата?

Здравей!
Малко съм разсеян и сам обаркал ORDER BY с SORT BY просто защото това прави, но не това е проблема. Първата част без втората и втората без първата се получават лесно но това не е достатъчно . Реално проблема е как да получа и двете части като резултат от едно запитване?

Отговор
в отговор на mysql #8

Re: Разделяне на резултата?

Ами опитай се да формулираш малко по-детайлно това което искаш и ще разбереш защо не може да се направи с една заявка.

Наблегни на дефиницията на "останалите"

Между другото ще съм ти много благодарен ако престанеш да се подписваш като MySQL. Все пак е търговска марка.

salle.online.bg/sig
Отговор
в отговор на salle #9

Re: Разделяне на резултата?

Здрвей!
Аз съм го направил с 1 заявка!
Просто исках да разбера дали няма различен начин който да е по-добър от моя .
Не разчитам на вас да ми дадете решението защото многократно съм се убедил че в този форум пишат нещастници, които нищо не знаят, а ако случайно знаят неща то не биха го споделили с останалите, защото след като толково са се измъчили докато го научат с тъпите си глави, не може да го кажат на другите наготово, нека и те да се мъчат
Аз разчитам само на себе си, а не на смотаняци като вас дето не смеят да обменят опит за до не научат другите на нещо, като не разбират че така и те биха могли да научат нещо!
Ако ти не можеш да го направиш с една заявка не ми казвай че не може да се направи, а кажи "аз не мога да го направя с една заявка"!
Хората като мен с въображение не разбират значението на не мога!

Отговор
в отговор на mysql #10

Re: Разделяне на резултата?

......mislech v drugi den kogato sam na rabota da popitam moi kolega (sas sql spezializiran) po tvoja vapros, no sled tozi posting.........!!!!

Blagodari se tche ne jiveech v tchujbina tche s tazi arogantnost i mislene i ot glad chte umresch.

Отговор
в отговор на mysql #11

Re: Ама си готин ще знаеш :)

То с такъв комплекс за малоценност като твоя по-добре си търси друго място за отдушник.

Той видиш ли го бил направил (щото е най-велик естествено) но не няма да ни каже на нас простосмъртните как го е направил (НЕЕЕЕЕ НЯМААААА!!!)

И пита защото му трябва помощ а само заради повода да ни каже колко сме глупави ах ние горкичките.

Ами, че я кажи като как си го постигнал бе готин пък да видим дали това което си направил има нещо общо с въпроса по начина по който си го задал във форума или отговаря на съвсем друг въпрос, но ние видиш ли сме толкоз тъпи, че не схващаме иносказателният изказ на запитванията ти.

Това дето не знаеш, че в SQL резултатът се сортира с ORDER BY са подробности за простолюдието. Те такива титани на мисълта са като теб са над тези дреболии истествено.

Да си призная отдавна не се бях смял толкова.

Я пак ми припомни кой ти е разрешил (в писмен вид) да се подписваш с търговската марка MySQL?

salle.online.bg/sig
Отговор
в отговор на mysql #12

Селски комплексар...

НЕЩАСТНИК
Що не се ебеш в гъзЪ?

Отговор
в отговор на mysql #13

Re: Разделяне на резултата?

Аве , великан на информатиката.. я кажи кво е чуството да се оправяш сам.. че ние тука тъпанарите все партньори си търсим...






Няма лошо да си умен лошото е да не разбираш какво е "умен"....

Отговор
в отговор на mysql #14

Re: Разделяне на резултата?

Ах ни бях довчел до края(т'ва е щоту осте се учъ да читъ и пища)...
С въображениееее ДААААА въобрадженийеее... яя яяяя....


Викат ти mySQL щото не ти знаят имято А!?! :))))))))))

Нема да си палиш, ние тука глупаците така си дрънкяме... :))))
И как се засягаме ...скиваш ли... отивам да са наривъ.....

Отговор
в отговор на mysql #15

Re: Разделяне на резултата?

Абе комплексар смотан, ето ти го написан на аксески SQL (не за друго, ами дори няма нужда да го "пишеш" ...

Не съм си играл да наподобявам твоята структурка с 2 свързани таблици и не съм използвал твоите полета, щото не това е целта на упражнението ...

------------------------------------------------------------------------------------

SELECT TOP 3 Table1.TITEL, Sum(Table1.BGN) AS SumOfBGN
FROM Table1
GROUP BY Table1.TITEL
ORDER BY Table1.TITEL

UNION ALL SELECT "OTHERS" AS TITEL, Sum(Table1.BGN) AS SumOfBGN
FROM Table1
WHERE (((Table1.TITEL) Not In (SELECT TOP 3 Table1.TITEL FROM Table1 GROUP BY Table1.TITEL ORDER BY Table1.TITEL)))
GROUP BY "OTHERS"

------------------------------------------------------------------------------------

И сега, отворко, още 2 неща от мен:

1. Колкото и дълго да си търсил топлата вода, то тя вече е измислена от други.
2. Това, че ти си търсил топлата вода безкрайно дълго време за твое най-голямо разочарование не я прави по-топла.

Ако си мислиш че използването на операторите

§ TOP (независимо от локалните му наименования),
§ UNION ALL (нямам идея, дали правиш разлика между UNION и UNION ALL),
§ IN и/или NOT IN и
§ WHERE с критерий подзаявка

е върха на сладоледа, то имаш още много хляб да изядеш, преди да придобиеш сурат да обиждаш наляво и надясно на тема познания по SQL.




П.С. Ах ... пардон, голяма грешка ... ... в заявката се извличат само първите 3 записа и после следва сумата на всички останали . Сега отивам да си посипя главата с пепел и да мисля, как ще стане за 10 записа ... че колкото повече, сигурно толкова по-трудно ...

Редактирано от VladoR на

Отговор