2

クエリ結果を Y のフラグを持つグループと N のフラグを持つグループの 2 つのグループに分割しようとしています。次に、2 つのことに基づいてグループを並べ替える必要があります。

GROUP BY ビットでは機能しない、私が試したクエリは次のとおりです。

SELECT      location, 
        country 
FROM        web_loc_info 
WHERE       flag = 'Y' 
OR      flag = 'N' 
AND         available_online = 'Y' 
GROUP BY    flag 
ORDER BY    country, 
                location_desc

これに関するヘルプは素晴らしいので、事前に返信に感謝します

4

4 に答える 4

5

GROUP BYOracle の (操作からの) 「グループ」は、生データの 1 つ以上の行が結果の単一の行に統合された場所であることを明確にする価値があるかもしれません。

それを思い出します:

SELECT flag FROM web_loc_info GROUP BY flag ORDER BY flag

と同等です

SELECT DISTINCT flag FROM web_log_info ORDER BY flag

(フラグ列に Y 値と N 値のみが含まれている場合、両方のクエリで 2 行が返されます。)

したがって、今後、「グループ」と考えるときは、「各グループ値 (この場合はフラグ列の "Y"/"N" 値) に対して 1 つの行が存在するようにデータを要約する」という意味かどうか尋ねてください。GROUP BY句がおそらくあなたが求めているものであるか、同じ値を持つ並べ替え行をまとめたい場合、その場合はORDER BY.

上記の Randy と Harshit はかなり近いと言えますが、FLAG 列を SELECT リストに含めて、LOCATION と COUNTRY の値がどの「グループ」に属しているかを確認できるようにします (そして、グループ化の中断がどこで発生するかを明確にします) ):

SELECT      flag,
            location, 
            country 
FROM        web_loc_info 
WHERE       flag IN ('Y', 'N')
AND         available_online = 'Y' 
ORDER BY    flag, -- DESC if you want the Y rows to show first
            location, -- DESC? or is there actually a column called LOCATION_DESC?
            country
于 2013-07-31T17:57:30.330 に答える
3

グループはまったく必要ないようです。

SELECT      location, 
            country 
FROM        web_loc_info 
WHERE       flag in ( 'Y' , 'N' )
AND         available_online = 'Y' 
ORDER BY    flag desc,
            country, 
            location_desc
于 2013-07-31T16:04:42.700 に答える
2

これを試すことができます

SELECT location, country FROM web_loc_info WHERE flag = 'Y' OR flag = 'N' AND     
available_online = 'Y'  ORDER BY FLAG,country, location_desc
于 2013-07-31T16:05:02.853 に答える
1

選択したすべての列は、集計する場合を除き、グループ化基準に含まれている必要があります。したがって、この場合、クエリは次のようになります。

SELECT      location, 
            country 
FROM        web_loc_info 
WHERE       flag = 'Y' 
OR          flag = 'N' 
AND         available_online = 'Y' 
GROUP BY    flag,
            location, 
            country,
            location_desc
ORDER BY    country, 
            location_desc

location_descで使用するため、 も必要ですorder by

于 2013-07-31T16:02:14.167 に答える