常用SQL命令

创建一个表用来演示,数据如下

select * from xiaowei;

--age的最大值,最小值
select MAX(age),MIN(age) from xiaowei;

--对表行数计数,对age计数(不包括null)
select count(*),count(age) from xiaowei;


--计算age的平均值(不包括null),age求和
select AVG(age),SUM(age) from xiaowei;

--此句的意思是将age值为null替换为0,0可以与其他int值一起计算平均值。因为有两个null被替换为0参与了平均值的计算,所以这里计算的平均值就跟之前不一样了
--mysql可以用isnull函数,pgsql只支持COALESCE;
select avg(isnull(age,0)) from xiaowei;
select avg(COALESCE(age,0)) from xiaowei;

--此句的意思是用age进行分组,展示对应的name,MySQL使用group_concat,pgsql不支持group_concat,可以用array_agg,返回的name是一个数组
select age,group_concat(name) from xiaowei group by age;
select age,array_agg(name) from xiaowei group by age ;


--给分组的内容加一个查询条件
select age,array_agg(name) from xiaowei where age = '15' group by age ;


--对name排序,并转为string,中间用空格分隔
select age,array_to_string(array_agg(name order by name), ' ') from xiaowei group by age;

数据库左连接

--SELECT column1, column2
--FROM table1
--LEFT JOIN table2
--ON condition1
--WHERE additional_conditions;
--------举例如下:
--------查询左表(t_er_checkingpayentry)中的内容,条件是左右表的fid相等,右表(t_er_checkingpay)查询条件右表的fbillno= 'SLFK-231029-04115'
select * FROM t_er_checkingpayentry left join  t_er_checkingpay on t_er_checkingpay.fid = t_er_checkingpayentry.fid where  t_er_checkingpay.fbillno = 'SLFK-231029-04115';

--------查询左表(T_ER_ReqBill.fbillno)中的内容,条件是左右表的fid相等,右表(T_ER_ReqTripEntry)查询条件左表的FToPlaceID = '1362'
select T_ER_ReqBill.fbillno FROM T_ER_ReqBill left join  T_ER_ReqTripEntry on T_ER_ReqTripEntry.fid = T_ER_ReqBill.fid where  T_ER_ReqTripEntry.FToPlaceID = '1362';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值