3 Stimmen

Summieren einer generierten Liste in MySQL, in einer einzigen Abfrage

Ich muss ein Ergebnis summieren, das ich aus einer vorhandenen Abfrage erhalte. Und es muss die aktuelle Abfrage erweitern und eine einzige Abfrage bleiben

(damit meine ich NICHT - DO 1; DO 2; DO3;)

Meine aktuelle Anfrage lautet:

SELECT SUM((count)/(SELECT COUNT(*) FROM mobile_site_statistics WHERE campaign_id='1201' AND start_time BETWEEN CURDATE()-1 AND CURDATE())*100) AS percentage FROM mobile_site_statistics WHERE device NOT LIKE '%Pingdom%' AND campaign_id='1201' AND start_time BETWEEN (CURDATE()-1) AND CURDATE() GROUP BY device ORDER BY 1 DESC LIMIT 10;

Dies führt zurück:

+------------+
| percentage |
+------------+
|    47.3813 |
|    19.7940 |
|     5.6672 |
|     5.0801 |
|     3.9603 |
|     3.8500 |
|     3.1294 |
|     2.9924 |
|     2.9398 |
|     2.7136 |
+------------+

Was ich benötige, ist die Gesamtsumme dieser Tabelle (Gesamtprozentsatz, der von den 10 wichtigsten Geräten verwendet wird) (das ist alles), aber es muss eine einzelne Abfrage sein (muss die ursprüngliche Abfrage enthalten) (muss eine einzelne Abfrage sein, da ein anderes Programm die Abfrage verwendet)

Ist das möglich? Alle Versuche, die ich bisher unternommen habe, sind fehlgeschlagen. Wir haben es mit temporären Tabellen versucht, aber das führte zu mehreren Abfragen.

1voto

rabudde Punkte 7205

Machen Sie einfach eine

SELECT SUM(percentage) AS total FROM (<YOUR_QUERY>) a

und ersetzen Sie die Unterabfrage <YOUR_QUERY> mit Ihrer ursprünglichen Anfrage

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X