我怎么能在GROUP BY一个列中排序,而只按另一列排序。
我正在尝试执行以下操作:
SELECT dbId,retreivalTime
FROM FileItems
WHERE sourceSite='something'
GROUP BY seriesName
ORDER BY retreivalTime DESC
LIMIT 100
OFFSET 0;
Run Code Online (Sandbox Code Playgroud)
我要选择的最后一个从FileItems / N /项,按降序排列,与过滤行DISTINCT的值seriesName。上面的查询出错了ERROR: column "fileitems.dbid" must appear in the GROUP BY clause or be used in an aggregate function。我需要该dbid值以便然后获取此查询的输出,并将JOIN其放在源表上以获取我所在的其余列。
请注意,这基本上是以下问题的格式塔,为了清楚起见,删除了许多无关的细节。
我有一个要从 sqlite3 迁移到 PostgreSQL 的系统,因为我已经在很大程度上超出了 sqlite:
SELECT
d.dbId,
d.dlState,
d.sourceSite,
[snip a bunch of rows]
d.note
FROM FileItems AS d
JOIN
( …Run Code Online (Sandbox Code Playgroud) postgresql performance postgresql-9.3 greatest-n-per-group query-performance