栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

postgres中的distinct()函数(不选择限定符)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

postgres中的distinct()函数(不选择限定符)

(这个问题很老,但是在Google的“ ql区别不是函数”中排名很高(第二,第一个是Stack
Overflow),但是仍然缺少令人满意的答案,所以…)

实际上,这 SELECt上的普通DISTINCT限定符-但语法具有误导性(您对此很正确)。

DISTINCT永远不是函数,永远不是关键字。在这里(错误地)使用它就像是一个函数,但是

select distinct(pattern) as pattern, style, ... etc ...from styleviewwhere ... etc ...

实际上等效于以下所有形式:

-在以下位置添加一个空格

distinct

select distinct (pattern) as pattern, style, ... etc ...from styleviewwhere ... etc ...

-删除列名周围的括号:

select distinct pattern as pattern, style, ... etc ...from styleviewwhere ... etc ...

-缩进条款内容:

select distinct    pattern as pattern, style, ... etc ...from    styleviewwhere    ... etc ...

-删除与列名相同的冗余别名:

select distinct    pattern, style, ... etc ...from    styleviewwhere    ... etc ...

补充阅读:

  • http://weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
  • https://stackoverflow.com/a/1164529

注意:OMG Ponies回答当前问题时提到了

DISTINCTON
PostgreSQL的扩展名。
但是(正如Jay在评论中正确指出的那样),这里并没有使用它,因为查询(和结果)应该是不同的,例如:

select distinct on(pattern) pattern, style, ... etc ...from styleviewwhere ... etc ...order by pattern, ... etc ...

相当于:

select  distinct on (pattern)    pattern, style, ... etc ...from    styleviewwhere    ... etc ...order by    pattern, ... etc ...

补充阅读:

  • http://www.noelherrick.com/blog/postgres-distinct-on

注意:LukasEder在对当前问题的回答中提到了在聚合函数中使用DISTINCT关键字

COUNT(DISTINCT (foo, bar, ...))
语法:HSQLDB所具有的语法
(或者
COUNT(DISTINCT foo, bar, ...)
也适用于MySQL,但也适用于PostgreSQL,SQL
Server,Oracle以及其他)。
但是(很明显)这不是这里使用的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574891.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号