Ich habe Daten, die Mitarbeiter Ebene ist, die ich aggregieren täglich, und dann wieder zu einem Dienstplan, um den Namen und Manager-Namen usw. zu bekommen. Gibt es eine Möglichkeit, dann diese Daten (mit dem Manager-Namen) zu aggregieren und wieder beizutreten zu den ursprünglichen Daten?Postgres, Abfrage des Ergebnisses einer Unterabfrage?
Bis zu diesem Punkt funktioniert gut. Ich mache eine Zeile pro System-ID pro Datum. Ich schließe mich der System-ID mit einer Zuordnungstabelle an, um die Mitarbeiter-ID abzurufen. Ich schließe mich dann einer Dienstplan-Tabelle an, um einige Mitarbeiterinformationen (einschließlich des Namens ihres Vorgesetzten) zu erhalten.
SELECT *
FROM
(SELECT DISTINCT (system_id)
FROM schema.fact_table
WHERE report_date >= '2017-09-01') AS t1
CROSS JOIN
(SELECT report_date :: DATE
FROM generate_series('2017-09-01' :: DATE , '2017-09-10' :: DATE , INTERVAL '1 day') report_date) AS t2
LEFT JOIN
(SELECT *
FROM schema.dimension_table_1
WHERE system_id IS NOT NULL
AND expiration_date > '2017-09-01') AS t3
ON t1.system_id = t3.system_id
AND t2.report_date >= t3.effective_date
AND t2.report_date <= t3.expiration_date
LEFT JOIN
(SELECT *
FROM schema.dimension_table_2
WHERE expiration_date > '2017-09-01') AS t4
ON t3.employee_id = t4.employee_id
AND report_date >= t4.effective_date
AND report_date <= t4.expiration_date
LEFT JOIN
(SELECT report_date AS report_date,
system_id AS system_id,
sum(stuff_count) AS stuff_count,
FROM schema.fact_table_1
WHERE report_date >= '2017-09-01'
GROUP BY report_date, avaya_id, source_database) AS t5
ON t2.report_date = t5.report_date
AND t1.system_id = t5.system_id
Ich möchte dann einige Spalten hinzufügen, die die aggregierte tägliche Leistung für das Team des Mitarbeiters haben.
Wie kann ich das erreichen? Ich muss dem gesamten oberen Bereich (tägliche aggregierte Daten auf Mitarbeiterebene mit dem Namen des Supervisors) einen Alias geben und diesen Alias dann auf dem Datum + supervisor_id_column aggregieren. Ich konnte es einfach nicht richtig funktionieren lassen.
Ihr letzter Unterabfragealias ist 't7', aber Sie verwenden' supervisor_employee_id' ohne Alias? Sie brauchen 'ON T7.supervisor_employee_id = SOMETHING.supervisor_employee_id' –
Entschuldigung, ja. Ich hatte versucht, Aliase hinzuzufügen, aber ich scheiterte. Das ist nur, weil ich etwas kopiert und eingefügt habe und vergessen habe, es zu entfernen. Ignoriere meine Aliase in diesem letzten Abschnitt. – trench
mmmm Ich kann das nicht ignorieren. Wenn Sie einen korrekten Aliasnamen angeben, sollte die Abfrage funktionieren. Aber deine Frage ist zu lang. Ich kann nicht alles für dich debuggen. Zeigen Sie uns db Schema, Beispieldaten, aktuelle und erwartete Ausgabe. \t Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http://spaghettiba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie die Qualität Ihrer Fragen verbessern und bessere Antworten erhalten. \t [** So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel **] (http://stackoverflow.com/help/mcve) –