I want to find maximum value of the has_sold column in an specific province.For example in all rows with province = Tehran which row has the most has_sold value?
This is my table:
CREATE TABLE fp_stores_data_test (
time INTEGER,
province VARCHAR(20),
city VARCHAR(20),
market_id INTEGER,
product_id INTEGER,
price INTEGER,
quantity INTEGER,
has_sold INTEGER,
PRIMARY KEY (time, city, province, market_id ,product_id)
);
I had tried this SELECT DISTINCT city, max(has_sold) FROM fp_stores_data_test GROUP BY city, but I’m not sure it’s right.
Advertisement
Answer
You can try the below one using row_number()
select * from ( select *, row_number() over(partition by province order by has_sold desc) as rn from fp_stores_data_test )A where rn=1