peace_Julian
Neuer Benutzer
- Beiträge
- 3
Ich hab da eine Abfrage wo ich nicht weiter komme.
Es geht um inner selects bzw. unterabfragen:
SELECT `offer` , mergedcategories.category, offers_feed.payout as publisher_payout, CAST( ROUND( SUM( conversions ) ) AS SIGNED ) AS conversions,CAST(ROUND(SUM(revenue)) AS SIGNED) as revenue, TRIM(LEFT( statsyear.offer, 3 )) AS Land, country.name, offers_feed.countrytarget, offers_feed.offerid,
( SELECT round(avg(offers_feed.payout), 2) FROM offers_feed as inner_offers_feed
WHERE TRIM(LEFT( inner_offers_feed.name, 2 )) like TRIM(LEFT( statsyear.offer, 2 ))
group by TRIM(LEFT( inner_offers_feed.name, 2 )) ) as Test_Durchschnitt
FROM statsyear
INNER JOIN country ON LEFT( statsyear.offer, 3 ) = country.iso
INNER JOIN offers_feed ON statsyear.offerid = offers_feed.offerid
LEFT OUTER JOIN mergedcategories ON statsyear.offerid=mergedcategories.id
WHERE conversions <>0
AND YEAR =2014
AND revenue <>0
GROUP BY offers_feed.offerid
ORDER BY `revenue` DESC
Diese Unterabfrage liefert ein falsches Ergebnis. ich möchte den avg von payout gruppiert nach left(name) und die Bedingung soll von left(name) auf die überabfrage left(offer) gehen. Die where klausel ist eigentlich korrekt, ich hab mir auch schon beide Werte ausgeben lassen, dass stimmt soweit.
Trotzdem stimmt der avg(payout) nicht. Wenn ich diese unterabfrage in einer eigenständigen abfrage anzeigen lasse sieht das so aus: SELECT ROUND( AVG( offers_feed.payout ) , 2 ) AS durchschnitt_payout, TRIM( LEFT( name, 2 ) ) AS Land
FROM offers_feed
GROUP BY TRIM( LEFT( name, 2 ))
Es geht um inner selects bzw. unterabfragen:
SELECT `offer` , mergedcategories.category, offers_feed.payout as publisher_payout, CAST( ROUND( SUM( conversions ) ) AS SIGNED ) AS conversions,CAST(ROUND(SUM(revenue)) AS SIGNED) as revenue, TRIM(LEFT( statsyear.offer, 3 )) AS Land, country.name, offers_feed.countrytarget, offers_feed.offerid,
( SELECT round(avg(offers_feed.payout), 2) FROM offers_feed as inner_offers_feed
WHERE TRIM(LEFT( inner_offers_feed.name, 2 )) like TRIM(LEFT( statsyear.offer, 2 ))
group by TRIM(LEFT( inner_offers_feed.name, 2 )) ) as Test_Durchschnitt
FROM statsyear
INNER JOIN country ON LEFT( statsyear.offer, 3 ) = country.iso
INNER JOIN offers_feed ON statsyear.offerid = offers_feed.offerid
LEFT OUTER JOIN mergedcategories ON statsyear.offerid=mergedcategories.id
WHERE conversions <>0
AND YEAR =2014
AND revenue <>0
GROUP BY offers_feed.offerid
ORDER BY `revenue` DESC
Diese Unterabfrage liefert ein falsches Ergebnis. ich möchte den avg von payout gruppiert nach left(name) und die Bedingung soll von left(name) auf die überabfrage left(offer) gehen. Die where klausel ist eigentlich korrekt, ich hab mir auch schon beide Werte ausgeben lassen, dass stimmt soweit.
Trotzdem stimmt der avg(payout) nicht. Wenn ich diese unterabfrage in einer eigenständigen abfrage anzeigen lasse sieht das so aus: SELECT ROUND( AVG( offers_feed.payout ) , 2 ) AS durchschnitt_payout, TRIM( LEFT( name, 2 ) ) AS Land
FROM offers_feed
GROUP BY TRIM( LEFT( name, 2 ))