佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 基于postgreSql 常用查詢小結(jié)

基于postgreSql 常用查詢小結(jié)

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 服務(wù)外包 百度競價排名 Linux服務(wù)器 呼叫中心市場需求 鐵路電話系統(tǒng) AI電銷 地方門戶網(wǎng)站

1. 日期格式轉(zhuǎn)化(參考)

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形式存儲,求時間差時轉(zhuǎn)化為時間戳再相減得到結(jié)果(s)

2. select * from (中間結(jié)果) t

select count(*) from (
select chkid, count(*) from abc_table GROUP BY chkid) t

補充:自己寫的postgreSQL查詢語句

我就廢話不多說了,大家還是直接看代碼吧~

import psycopg2 
class PostgreConn():
  '''
  數(shù)據(jù)庫連接類
  '''
  def __init__(self, database, user, password, host, port):
    self.conn = psycopg2.connect(database=database, user=user, password=password, host=host, port=port)
    print('數(shù)據(jù)庫連接成功')
    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('數(shù)據(jù)庫連接關(guān)閉') 
 
def select_sql(table, keys, conditions, isdistinct=0):
  '''
    生成select的sql語句
  @table,查詢記錄的表名
  @key,需要查詢的字段
  @conditions,插入的數(shù)據(jù),字典
  @isdistinct,查詢的數(shù)據(jù)是否不重復(fù)
  '''
  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: 數(shù)據(jù)庫fetchall的結(jié)果
  :param key_list: 查詢字段的keys
  :return:
  format SQL Result 格式化數(shù)據(jù)庫查詢的結(jié)果,轉(zhuǎn)化成包含多個字典的列表格式,即((1,2),(3,4))->[{"key1":1,"key2":2},{"key1":3,"key2":4}]
  返回 @dict 查詢結(jié)果
  '''
  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()

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決postgresql 數(shù)字轉(zhuǎn)換成字符串前面會多出一個空格的問題
  • PostgreSQL 遠(yuǎn)程連接配置操作
  • postgreSQL中的內(nèi)連接和外連接實現(xiàn)操作
  • postgreSQL中的case用法說明
  • postgresql 查詢字符串中是否包含某字符的操作
  • postgresql 替換空格 換行和回車的操作

標(biāo)簽:銅川 湖南 衡水 崇左 湘潭 仙桃 黃山 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于postgreSql 常用查詢小結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    安吉县| 石景山区| 迭部县| 五峰| 精河县| 贡山| 墨竹工卡县| 昌图县| 青河县| 乐昌市| 沁水县| 大理市| 定陶县| 拉萨市| 饶河县| 乐安县| 若尔盖县| 读书| 齐齐哈尔市| 资阳市| 昌宁县| 洱源县| 宣威市| 喜德县| 疏勒县| 尚义县| 普陀区| 五峰| 兴业县| 石首市| 仪征市| 墨玉县| 德格县| 牡丹江市| 福贡县| 台山市| 张掖市| 桑植县| 通化市| 临沭县| 军事|