J'ai examiné quelques exemples d'utilisation de jointures pour obtenir la valeur la plus élevée dans un groupe, mais les méthodes que j'ai essayées n'aiment pas l'utilisation d'alias en dehors de la jointure interne .Utilisation d'alias dans la jointure interne SQL
SELECT f.year, f.name, f.date_start, f.date_end, f.max_year FROM ( SELECT EXTRACT(year FROM date_start) AS year, MAX(DATEDIFF(date_end,date_start)) AS max_year FROM mytable GROUP BY year ) AS x inner join mytable AS f on f.year = x.year and f.max_year = x.max_year;
Donc, si j'ai une table:
Name date_start date_end John 1950-04-05 1960-07-08 Jack 1950-04-06 1960-12-31 Mark 1954-01-01 1970-01-01 Jane 1954-10-10 1978-10-01
Alors je le veux pour afficher les entrées qui ont le plus grand écart entre les deux dates, pour chaque année de la start_date :
Year Name date_start date_end max_year 1950 Jack 1950-04-06 1960-12-31 3922 1954 Jane 1954-10-10 1978-10-01 8758
Toutes les suggestions sur la façon de se déplacer ce?
Avez-vous une erreur lorsque vous exécutez votre requête ou que les résultats ne correspondent pas aux attentes? – Bulat