我想获得每个用户的最后一个条目,但customer_id是一个哈希' ASAG#...' customer_id的订单会破坏查询。还有其他选择吗?
Select Distinct On (l.customer_id)
l.customer_id
,l.created_at
,l.text
From likes l
Order By l.customer_id, l.created_at Desc
答案 0 :(得分:2)
您当前的查询似乎已经正常运行,q.v。这里:
我不知道为什么您当前的查询没有产生您期望的结果。对于每个客户,它应该返回一个不同的记录,对应于最近的一个,给出ForEach ($noteProperty in $NetworkInfo.PSObject.Properties)
{
Write-Host $noteProperty.Name
Write-Host $noteProperty.Value
}
声明。
在任何情况下,如果它没有做你想要的,那么另一种方法是在这里使用ORDER BY
和用户分区。内部查询为每个用户分配行号,值ROW_NUMBER()
将转到每个用户的最新记录。然后外部查询仅保留最新记录。
1
要加快使用SELECT
t.customer_id,
t.created_at,
t.text
FROM
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY created_at DESC) rn
FROM likes
) t
WHERE t.rn = 1
的内部查询,您可以尝试在ROW_NUMBER()
和customer_id
列上添加综合索引:
created_at