2017-12-02 2 views
0

Tabelle AAADiese Abfrage nicht funktioniert diese Tabelle, so wie diese Fornula mit dieser Tabelle Abfrage aktualisieren?

k_id main_id  keyword click price click_time 
    1  1   aaa   1  0.25 2017-11-05 
    2  1   bbb   1  0.36 2017-11-05 
    3  1   bbb   1  0.45 2017-11-05 
    4  1   aaa   1  0.36 2017-11-05 
    5  1   ccc   1  0.98 2017-11-05 
    6  1   bbb   1  0.55 2017-11-05 
    7  1   aaa   1  0.25 2017-11-05 
    8  1   ccc   1  0.98 2017-11-05 
    9  1   aaa   1  0.25 2017-11-05 
    10 1   bbb   1  0.45 2017-11-05 

Meine Anfrage

SELECT p1.keyword as keyword, 
SUM(
SELECT sum(`click`) * price FROM `AAA` p2 where main_id = '1' AND p2.keyword = p1.keyword AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' GROUP BY p2.price ORDER BY NULL 
)          
as new1 
FROM AAA p1 
where p1.main_id = '1' AND DATE(p1.click_time) BETWEEN '2017-11-01' AND '2017-11-30' 
GROUP BY p1.keyword 
ORDER BY NULL LIMIT 0,20 

Above Abfrage Prüfung so Fehler immer diese Art

Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version entspricht, die für die richtige Syntax in der Nähe 'SELECT sum (click) * cpc VON AAA p2 wo main_id = 'zu verwenden, 1' AND p2.ke' in Zeile 3

Diese Abfrage ist richtig oder nicht, aber diese Abfrage macht auch eine andere Referenz .. !!

Endergebnis

keyword  sum(click) price 

aaa   4   0.25 0.36 0.25 0.25 (0.36 * 1 + 0.25 * 3 ) 
bbb   4   0.36 0.45 0.55 0.45 (0.36 * 1 + 0.45 * 2 + 0.55 * 1) 
ccc   2   0.98 0.98   (0.98 * 2) 

original & final result getting this types 

keyword price 
aaa  0.86 
bbb  1.81 
ccc  1.96 
+0

Was möchten Sie tun? SUMME innerhalb von SUM ?? Bitte löschen –

+0

Ja ... Sum innerhalb der Summe, aber diese Unterabfrage ist auch Gruppe Vise cpc dann mehrere mit der Summe von klicken Sie auf diese cpc .. –

+0

Hauptabfrage ist Gruppe von Schlüsselwort und dass alle Schlüsselwort bekommen Gesamtsumme der Unterabfrage –

Antwort

1

i die Abfrage geändert haben und machte es wie folgt:

SELECT keyword,SUM(aa.eachSum) AS totalSum, SUM(aa.totalClicks) AS totalClicks FROM(
SELECT GROUP_CONCAT(DISTINCT p2.keyword) AS keyword,COUNT(p2.click) * price AS eachSum, COUNT(p2.click) AS totalClicks 
FROM `values_test` p2 WHERE main_id = '1' AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' GROUP BY p2.price,p2.keyword 
)aa GROUP BY aa.keyword 

Erklärung

SELECT GROUP_CONCAT(DISTINCT p2.keyword) AS keyword,COUNT(p2.click) * price AS eachSum, COUNT(p2.click) AS totalClicks 
FROM `values_test` p2 
WHERE main_id = '1' 
AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' 
GROUP BY p2.price,p2.keyword 

Diese innere Unter Abfrage sammelt verschiedene Schlüssel Wort basierend auf Preis und Keyword, denn wenn Sie nur nach Preis gruppieren, werden verschiedene Keywords mit gleichem Preis in einer Spalte gesammelt, was ich für unerwünscht halte. Dieser Block ergibt sich wie folgt:

keyword eachSum totalClicks 
aaa  0.75  3 
aaa  0.36  1 
bbb  0.36  1 
bbb  0.90  2 
bbb  0.55  1 
ccc  1.96  2 

Nach Thsi Daten der äußeren Abfrage gruppieren jeweils Schlüsselwörter zu sammeln und zusammenzufassen die jeweils Werte sammeln und ausgegeben werden wie folgt aussehen:

keyword totalSum totalClicks 
aaa  1.11   4 
bbb  1.81   4 
ccc  1.96   2 

Und Sie haben Fehler in der Summenbeispiel. Bitte lassen Sie mich wissen, wenn dies das ist, was Sie wollen. (Hinweis: Ich habe den Tabellennamen gemäß meiner Verwendung geändert)

+0

Danke ..Dies wird jetzt korrekte Ergebnisse ..Und ich falsch AAA Keyword-Berechnung gegeben Ihnen so leid .. –

+0

Ich bearbeitet Abfrage für insgesamt Klicks auch, wenn Sie das brauchen !! –

+0

Auch diese Abfrage von großen Datenmenge und viele Spalte ... Ihre bearbeitete Abfrage auch machen .... Vielen Dank –