Hi I'm on a school project and I can't find a solution to my problem. I have to do a query where I want the entire row of the table with the max value of the "Picco" column for all regions. The code written by me is:
SELECT 
DELTA.`data`,
DELTA.`regione`,
DELTA.Differenza AS Picco
FROM (SELECT 
  dr.`data`,
  dr.`regione`,
  dr.`deceduti`,
  dr.`deceduti`-LAG (dr.`deceduti`) OVER (PARTITION BY dr.`regione`) AS Differenza 
FROM
  `datareg` dr) AS DELTA;
I have this output:
| data                  | regione   | Picco |
| 2020-03-08 18:00:00   | Abruzzo   | 0     |
| 2020-03-09 18:00:00   | Abruzzo   | 0     |
| 2020-03-10 18:00:00   | Abruzzo   | 1     |
| 2020-03-11 17:00:00   | Abruzzo   | 0     |
| 2020-03-12 17:00:00   | Abruzzo   | 1     |
...
| 2020-04-03 17:00:00   | Abruzzo   | 13    |
| 2020-04-04 17:00:00   | Abruzzo   | 7     |
| 2020-04-05 17:00:00   | Abruzzo   | 5     |
| 2020-04-06 17:00:00   | Abruzzo   | 11    |
| 2020-04-07 17:00:00   | Abruzzo   | 3     |
| 2020-04-08 17:00:00   | Abruzzo   | 7     |
| 2020-04-09 17:00:00   | Abruzzo   | 15    |->i want only this row for each region
| 2020-04-10 17:00:00   | Abruzzo   | 4     |
..
I don't want all rows for each region, but only one with the max value for the 'Differenza' column. How can I do? Thank you for your time spent for me.
Thanks to all, I report the solution for my case:
SELECT
DELTA.`data`,
DELTA.`regione`,
MAX(DELTA.Differenza) AS Picco
FROM (SELECT
  dr.`data`,
  dr.`regione`,
  dr.`deceduti`,
  dr.`deceduti`-LAG (dr.`deceduti`) OVER (PARTITION BY dr.`regione`) AS Differenza
FROM
  `datareg` dr
ORDER BY
  dr.`deceduti`-LAG (dr.`deceduti`) OVER (PARTITION BY dr.`regione`) DESC) AS DELTA
GROUP BY
  DELTA.regione;
 
    