gpt4 book ai didi

sql - Oracle sql group by 然后排序

转载 作者:行者123 更新时间:2023-12-02 06:02:26 25 4
gpt4 key购买 nike

我试图将我的查询结果分成 2 组,一组带有 Y 标志,另一组带有标志 N。然后我需要根据两件事对这些组进行排序。

这是我试过的查询,它不适用于 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

任何帮助都将非常有用,因此在此先感谢您的任何回复

最佳答案

可能值得澄清的是,Oracle 中的“GROUP”(来自 GROUP BY 操作)是将一行或多行原始数据合并为结果中的一行的地方。

回想一下:

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”值) 在这种情况下,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

关于sql - Oracle sql group by 然后排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com