濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 基于postgreSql 常用查詢小結(jié)

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

熱門標(biāo)簽:電銷機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 廣州電銷機(jī)器人公司招聘 400電話申請(qǐng)客服 濟(jì)南外呼網(wǎng)絡(luò)電話線路 江蘇400電話辦理官方 電話機(jī)器人怎么換人工座席 地圖標(biāo)注要花多少錢 移動(dòng)外呼系統(tǒng)模擬題 天津開(kāi)發(fā)區(qū)地圖標(biāo)注app

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

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

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

補(bǔ)充:自己寫(xiě)的postgreSQL查詢語(yǔ)句

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

import psycopg2 
class PostgreConn():
  '''
  數(shù)據(jù)庫(kù)連接類
  '''
  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ù)庫(kù)連接成功')
    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ù)庫(kù)連接關(guān)閉') 
 
def select_sql(table, keys, conditions, isdistinct=0):
  '''
    生成select的sql語(yǔ)句
  @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ù)庫(kù)fetchall的結(jié)果
  :param key_list: 查詢字段的keys
  :return:
  format SQL Result 格式化數(shù)據(jù)庫(kù)查詢的結(jié)果,轉(zhuǎn)化成包含多個(gè)字典的列表格式,即((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()

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

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

標(biāo)簽:辛集 寶雞 榆林 海西 杭州 溫州 濮陽(yáng) 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于postgreSql 常用查詢小結(jié)》,本文關(guān)鍵詞  基于,postgreSql,常用,查詢,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于postgreSql 常用查詢小結(jié)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于基于postgreSql 常用查詢小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    颍上县| 兰州市| 文安县| 天峻县| 涿州市| 永川市| 岐山县| 永福县| 漠河县| 莎车县| 界首市| 红桥区| 库车县| 明溪县| 武乡县| 容城县| 阿尔山市| 台南市| 汉寿县| 沁水县| 启东市| 新化县| 行唐县| 尉氏县| 卢氏县| 富源县| 离岛区| 米易县| 乌兰察布市| 康马县| 六盘水市| 临朐县| 罗甸县| 开平市| 兴安盟| 丁青县| 射阳县| 德化县| 寿宁县| 眉山市| 绥阳县|