Попробуйте это:
WITH `data` AS(
SELECT 1 AS ID, 'LA' AS location, 15000 AS value, '2019-02-12' AS timestamp UNION ALL
SELECT 2 AS ID, 'SF' AS location, 23000 AS value, '2019-02-10' AS timestamp UNION ALL
SELECT 3 AS ID, 'NYC' AS location, 9000 AS value, '2019-02-10' AS timestamp UNION ALL
SELECT 4 AS ID, 'LA' AS location, 2500 AS value, '2019-02-09' AS timestamp
)
SELECT
RANK() OVER (ORDER BY SUM(value) DESC) AS rank,
location,
SUM(value) AS growth
FROM `data`
GROUP BY
location
Что приводит к:
[
{
"rank": "1",
"location": "SF",
"growth": "23000"
},
{
"rank": "2",
"location": "LA",
"growth": "17500"
},
{
"rank": "3",
"location": "NYC",
"growth": "9000"
}
]
Группируя местоположения, вы удаляете дублирование, наблюдаемое в вашем запросе.