2
我對SQL很新穎。我想要一個查詢,它應該按某個列的最小值進行排序。以下是我想要的查詢。如何按某列的min()進行排序?
SELECT *
FROM (
SELECT p.PROJECT_ID,
p.PROJECT_NAME,
p.PROJECT_TYPE
FROM PROJECT p
LEFT OUTER JOIN code c
ON p.PROJECT_ID= c.PROJECT_ID
WHERE p.PROJECT_NAME IN ('test')
ORDER BY min(c.LABEL) ASC
)
WHERE rownum <= 25;
爲什麼我需要這種方式。我有一個表項目。
PROJECT_ID PROJECT_NAME PROJECT_TYPE
1 a test1
2 b test2
我有另一個表project_id作爲外鍵的表代碼。
ID PROJECT_ID LABEL
1 1 a
2 1 b
3 1 c
4 2 d
現在,當我將加入它PROJECT_ID並通過code.label使爲了它會給我4記三分項目ID爲1和1項目ID爲2。但我的要求是基於項目排序在代碼標籤上。所以在邏輯上我想要兩個記錄。一個用於項目ID爲1的項目ID爲1的所有可能組合的標籤的最小值,即標籤爲a,其他爲項目ID爲2.因此,這就是爲什麼我想基於最小代碼標籤對其進行排序。我無法使用group by,因爲它會降低性能。
使用MIN (它是一個聚合函數),您必須使用GROUP BY子句來對記錄進行分組。 –
你的「rownum」專欄來自哪裏? –
我想你只是想'ORDER BY c.LABEL'? – Glenn