【发布时间】:2017-05-24 04:52:58
【问题描述】:
【问题讨论】:
-
在查询中使用 group by 子句。
-
会不会只有 3 个不同的
city_size?还要以表格格式发布数据,并清楚地提及预期输出。 -
请向我们展示您的预期输出。我不清楚你想要什么。
-
@Utsav 大多只有 3 个城市规模可能会改变
【问题讨论】:
city_size?还要以表格格式发布数据,并清楚地提及预期输出。
如果只有 3 个不同的 city_size,你可以像下面那样做。
假设AREA_NAME 对于相同的area 也是相同的。
select area,area_name
,max(case when city_size=1
then rate
else null end
) as city_size_1_rate
,max(case when city_size=2
then rate
else null end
) as city_size_2_rate
,max(case when city_size=3
then rate
else null end
) as city_size_3_rate
from your_table
group by area,area_name;
解释:case when city_size=1 then rate else null end 只会给你rate city_size=1 否则它会给你null。而当您group byarea 并选择max 或以上值时,您将只得到非空rate,即city_size_1_rate。其他 2 列也是如此。
【讨论】:
area_name 在输出中。为什么要再次选择它?
你应该在这里使用 group by
SELECT area,area_name,city_size1 rate,city_size2 rate,city_size3 rate FROM your_table_name GROUP BY area;
group by 可以这样执行:
area的每个值存储在一个
哈希表因此优化了速度,但可能需要大量内存。
【讨论】: