这是我的查询回复。
id_project filename
25 daf5c857-b4f3-4977-b2b7-fe61903cbc1f_3.jpg
26 4452ff57-966b-49ec-9b90-ea8a78a7dad0_1.jpg
26 4668ba37-8fea-48c8-955b-c6d71a8973dc_2.jpg
26 9ee0f078-16db-4e4a-895b-54ab307b1fa6_3.jpg
我想展示一个26场。我使用了这个选择代码:
SELECT id_project, filename
FROM image
GROUP BY id_project
但显示此错误
Msg 8120,Level 16,State 1,Line 2
列'image.filename'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我使用此代码进行求解,但它显示与原始查询相同的结果集。
select distinct id_project, filename
from image
答案 0 :(得分:2)
要为每个id_project
显示一行,并且只需要将其中一个匹配filename
包含在聚合中。
你说它“没关系。只显示26中的一个”。这将返回按字母顺序排列的最新版本。
SELECT id_project,
MAX(filename) AS filename
FROM image
GROUP BY id_project
或者您可以重写以获取ANY
aggregate
WITH T
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY id_project
ORDER BY id_project) AS RN
FROM image)
SELECT id_project,
filename
FROM T
WHERE RN = 1