以下自己回答
SQL文だけで実装する方法は見つけられず。
2つのテーブルをプログラム上で処理して所望の動作を満たす。
python
1from datetime import datetime, timezone, timedelta
2import numpy as np
3import psycopg2
4import pandas as pd
5
6# 接続情報
7connection_config = {
8'host': 'localhost',
9'port': '5432',
10'database': 'postgres',
11'user': 'postgres',
12'password': 'postgres'
13}
14
15# 接続
16connection = psycopg2.connect(**connection_config)
17
18# DataFrameでロード
19data = pd.read_sql(sql="SELECT * FROM test.view_value;", con=connection) # 対象ビュー
20data2 = pd.read_sql(sql="SELECT * FROM test.detail;", con=connection) # 日本語列名取得
21
22# Series化
23detail_cname = data2.detail_cname
24name = data2.detail_name
25
26# 列番号と日本語列名を辞書化
27dic = {}
28for cname, jname in zip(detail_cname, name):
29 dic[cname] = jname
30
31# 列名変更
32data = data.rename(columns=dic)
33
34# aware -> nativeなdatetime型に変換
35def toNative(row):
36 if not pd.isnull(row['date']):
37 row['date'] = row['date'].replace(tzinfo=None)
38
39 if not pd.isnull(row['input_date']):
40 row['input_date'] = row['input_date'].replace(tzinfo=None)
41
42 return row
43
44
45
46
47data = data.apply(toNative,axis=1)
48
49data.to_csv(r'C:\Users\Desktop\test.csv', encoding='utf-8-sig')
50
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/17 09:32
2018/12/17 09:47