1. 日期格式转化(参考)
select beg_time, end_time, extract(epoch from to_timestamp(end_time,'yyyy-mm-dd-HH24-MI-SS-US'))-extract(epoch from to_timestamp(beg_time,'yyyy-mm-dd-HH24-MI-SS-US')) from cdb_all_iu_data where beg_time > '2017-09-21'
注:beg_time, end_time以TEXT形式存储,求时间差时转化为时间戳再相减得到结果(s)
2. select * from (中间结果) t
select count(*) from ( select chkid, count(*) from abc_table GROUP BY chkid) t
补充:自己写的postgreSQL查询语句
我就废话不多说了,大家还是直接看代码吧~
import psycopg2 class PostgreConn(): ''' 数据库连接类 ''' def __init__(self, database, user, password, host, port): self.conn = psycopg2.connect(database=database, user=user, password=password, host=host, port=port) print('数据库连接成功') self.cur = self.conn.cursor() self.rows = None def cur(self): return self.cur() def execute(self, sql, fetchone=0): self.cur.execute(sql) if fetchone: self.rows = self.cur.fetchone() else: self.rows = self.cur.fetchall() return self.rows def close(self): self.cur.close() self.conn.close() print('数据库连接关闭') def select_sql(table, keys, conditions, isdistinct=0): ''' 生成select的sql语句 @table,查询记录的表名 @key,需要查询的字段 @conditions,插入的数据,字典 @isdistinct,查询的数据是否不重复 ''' if isdistinct: sql = 'SELECT distinct %s ' % ",".join(keys) else: sql = 'SELECT %s ' % ",".join(keys) sql += ' from %s ' % table if conditions: sql += ' WHERE %s ' % dict_str_and(conditions) return sql def dict_str_and(dictin): ''' 将字典变成,key='value' and key='value'的形式 ''' tmplist = [] for k, v in dictin.items(): tmp = "%s='%s'" % (str(k), str(v)) tmplist.append(' ' + tmp + ' ') return ' and '.join(tmplist) def fSqlResult(r,key_list): ''' :param r: 数据库fetchall的结果 :param key_list: 查询字段的keys :return: format SQL Result 格式化数据库查询的结果,转化成包含多个字典的列表格式,即((1,2),(3,4))->[{"key1":1,"key2":2},{"key1":3,"key2":4}] 返回 @dict 查询结果 ''' mlist=[] l=len(key_list) if r: for item in r: tmp={} for i in range(l): tmp[key_list[i]]=str(item[i]) mlist.append(tmp) return mlist conn = PostgreConn('settle', 'admin', 'settle8', '123.57.285.89', '5432') key_list = ['user_id'] sql = select_sql('st_user', key_list, {'phone': '138****'}) print(sql) r = conn.execute(sql) re = fSqlResult(r, key_list) print(re) conn.close()
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
标签:
postgreSql,常用查询
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“基于postgreSql 常用查询小结”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。