Cross join:
Cross join is the default for an unqualified join.
chr()
Grouping:
any_value()
array_agg()
json_agg(), jsonb_agg()
bool_and()
bool_or()
filter
string_agg()
count(*) counts the number of rows in the result set. count() of a column name gives the number of non-null values in that column. You are not penalized for counting the number of rows, it's not consuming the entire of rows. It is optimized to count rows, so you don't worry about should you use count(*) or should I use count(id). Use count(*) because that is going to be optimized to get back exactly what you want in the fast way as possible. If you need count non-null values, use count(column_name).
Grouping sets:
Rollups:
Beyond grouping sets, we have another option - rollups. Roolups under the hood is just grouping sets, but it's a way to write grouping sets very quickly.
Cubes:
Window functions:
first_value()
......
last_value()
unbounded preceding, unbounded following
row_number()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-12-08 Docker - Build an application to an image and run it