As per your question the correct query is:
SELECT district_name, district_population, COUNT(city_name) AS citi_count FROM india_data WHERE city_population > 100000 GROUP BY district_name, district_population HAVING citi_count >= 3;
but based on the sample data provided no district has 3 or more cities with a population over 100,000. Therefore, if you run the query with HAVING citi_count >= 3, it will return no results.
However, if your goal is to retrieve districts that have at least 1 city with a population greater than 100,000, you can modify the query to: SELECT district_name, district_population, COUNT(city_name) AS citi_count FROM india_data WHERE city_population > 100000 GROUP BY district_name, district_population HAVING citi_count >= 1;
This query will return results based on the current dataset since several districts do have at least one city with a population exceeding 100,000.