2017-02-06 4 views
0

Hallo Ich habe eine Tabelle, die einen Filmnamen, das Datum hat es veröffentlicht wurde, die Kosten und den Umsatz. Ich versuche, eine Abfrage zu schreiben, wie viele Filme angezeigt werden pro Monat veröffentlicht wurdenErhalten doppelte Datensätze in derselben Zeile anzuzeigen

CREATE TABLE movies_200249154(

movieName VARCHAR(30), 
releaseDate DATE, 
costInMillions INT (20), 
revenueInMillions INT (20) 

); 

Oben ist meine Tabelle

Hier ist meine aktuelle Abfrage

SELECT DISTINCTROW (monthname(releaseDate)) AS 'Month released', COUNT(*)movieName 
FROM movies_200249154 
GROUP BY movieName; 

Gerade jetzt meine Abfrage wird die Anzeige Monat und die Zählung für den Film (immer 1) und zeigt Duplikate. Wenn ich SELECT DISTINCT verwende, wird nur 1 Film pro Monat angezeigt. Scheinbar vergessen die anderen Daten.

Was ich brauche, ist für meine Frage, um den Monat UND die Menge der Filme in diesem Monat angezeigt. Zum Beispiel wiederholt es zur Zeit 4. Juni mal mit einer Zählung von 1. Die Abfrage würde ich Anzeige benötigen Juni und eine Anzahl von 4.

Jede Hilfe sehr geschätzt wird

+0

MySQL <> SQL-Server was ist das? Und pro eine Lösung ... gruppieren Sie nach Moviename, so dass die Informationen jedes Films in einer separaten Zeile stehen. Sie müssen nach Monat gruppieren, da Sie die Filme pro Monat zählen. Außerdem benötigen Sie in diesem Fall keine Unterscheidungsmerkmale, wenn Sie eine Gruppe ausführen. IMO distinct sollte nur verwendet werden, wenn Sie doppelte Daten in einer Ergebnismenge haben, die Sie wirklich eliminieren müssen; andernfalls ist bei Verwendung von Aggregation eine Gruppe von alles was Sie brauchen. – xQbert

Antwort

2

Sie MONTH Funktion von MySQL verwenden können und group by mit count um den erforderlichen Wert zu erhalten, zB:

SELECT MONTH(releaseDate), count(*) 
FROM movies 
GROUP BY MONTH(releaseDate); 
+0

Das hat funktioniert Vielen Dank –

+0

@AM Sie können die Antwort als richtig akzeptieren, wenn es Ihnen geholfen hat. –

Verwandte Themen