-1
看看我的下一个Vertica的查询:确实Vertica的或其他SQL服务器如何执行联接
WITH groupA AS (
SELECT
userId,
color
FROM worldUsers
WHERE DayPartition = 409
AND Hour = 12
)
SELECT
color = 12 AS userColor,
REGEXP_LIKE(familyName, '[a-z]+ish', 'i') ishPeople,
REGEXP_LIKE(familyName, '[a-z]+lem', 'i') lemPeople,
count(*) AS peopleCount,
round(count(*)/sum(count(*))
OVER(), 5.0) * 100 || '%' AS peoplePercentage
FROM PlanetUsers
JOIN groupA USING (userId)
WHERE DayPartition = 409
GROUP BY 1, 2, 3
ORDER BY 4 DESC
两个表worldUsers和PlanetUsers拿到了场Hour
,他们都通过DayPartition
场分区。它会提高性能,如果我们改变了下面的查询
的where语句从
WHERE DayPartition = 409
要
WHERE DayPartition = 409 and AND Hour = 12
或改变using语句
从
USING (userId)
为了
USING (userId, Hour)
假设除了上DayPartition
分区不存在主键和没有凸起