webForumDet fria alternativet

Summera maxvärdet i en GROUP by

1 svar · 174 visningar · startad av cyprys

cyprysMedlem sedan dec. 20003 563 inlägg
#1

Ritar upp en tabellstruktur och förklarar nedan.

-- AuctionObjects --
Id Counter | AuctionID Int

-- Bidding --
AuctionObjectID Int | Bid Int

Det har milt utalat slagit slint i tankeverksamheten just nu.

Tabellen bidding kan ha oändligt många poster med samma Bidding.AuctionObjectID, men bara det högsta skall användas för uträkningen.
Antalet olika Bidding.AuctionObjectID kan också variera per AuctionObjects.Id, dessa två är då kopplade till varrandra.

ex.
-- AuctionObjects --
10 | 4
11 | 4
12 | 4
13 | 5 <- skall exkluderas

-- Bidding --
10 | 300000
10 | 310000
10 | 320000
12 | 2000
11 | 20400 <- räknas 
10 | 400000 <- räknas (maxbelopp per ID)
12 | 2500  <- räknas

Summan skall bli 422900 då och det enda frågan skall kasta ifrån sig.

Anledningen att det kan vara svårtydligt är att jag inte kommer på vilket håll man egentligen skall börja räkna ifrån.. Men visst är detta möjligt med en fråga?

agneta_rungMedlem sedan juli 2002145 inlägg
#2

Håller det här tro? Jag har inte hårdtestat... Det förutsätter att man inte har flera bud som är lika och max per auktion (om du förstår hur jag menar :p )

select sum(bid)
from bidding b
where bid in (
select max(bid) from bidding
where b.auctionobjectid = auctionobjectid
group by auctionobjectid)
133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)