小编Joh*_*ith的帖子

如何在 ARRAY_AGG 表达式中定义别名?

我正在尝试从 Postgres 9.2 表中返回纯 JSON。

  SELECT ARRAY_TO_JSON(ARRAY_AGG(ALBUM_ROW))
  FROM (
    SELECT
      album,
      max(release_year) AS release_year,
      max(artwork_path) AS artwork_path,
      MD5(concat(album,release_year,artist)) AS token,
      ARRAY_AGG((media_files.position, media_files.token, media_files.title) ORDER BY media_files.position) as media_files
    FROM media_files
    INNER JOIN playlist_media_files ON playlist_media_files.media_file_id = media_files.id
    WHERE playlist_media_files.playlist_id = 1
    GROUP BY album, release_year, artist
    ORDER BY artist, release_year
  ) as ALBUM_ROW
Run Code Online (Sandbox Code Playgroud)

这个查询工作得很好,但是就行了:

ARRAY_AGG((media_files.position, media_files.token) ORDER ...) as media_files
Run Code Online (Sandbox Code Playgroud)

我想在结果集中别名positiontoken属性。

AS 显然这里是不允许的。

我会写:

ARRAY_AGG((media_files.position AS xxx, media_files.token AS yyy) ORDER BY media_files.position) as media_files
Run Code Online (Sandbox Code Playgroud)

但它不起作用。 …

postgresql postgresql-9.2

5
推荐指数
1
解决办法
4176
查看次数

标签 统计

postgresql ×1

postgresql-9.2 ×1