2017-09-12 10 views
1

Microsoft Azure SQLDWには、日付フィールドと他の列を持つテーブルがあります。過去10年間の営業日には、毎日の行があります。現在、表は「日付順」など以下のような方法で格納されていない私が持っているコードは、これまでのところです:Pythonを使用したSQLDWテーブルのループ

import pyodbc driver = '{ODBC Driver 13 for SQL Server}' 
conn = pyodbc.connect('DRIVER='+driver+'; 
PORT=1433;SERVER='+server+‌​'; 
DATABASE‌​='+database+'; 
UID='+‌​username+'; 
PWD='+ password) 
cursor = conn.cursor() cursor.execute("SELECT * FROM index_att") i = 0 for row in cursor: i += 1 print(i) 

私はこのテーブルのすべての行をループするのpythonを使用している場合と、私は年代順に(古い日付から現在の日付に)移動したいのですが、テーブルを日付順に格納する必要がありますか?そして、最も古い日付で1から始まり、毎日上がる追加の増分IDを追加する必要がありますか?

データがソートされていない日付からこのループを実行する方法はありますか?データが格納されている方法

「日付順」のような現在の表は、このような方法で格納されていない
+0

私たちはあなたのコードを参照する必要が助けるために... – bated

+0

をあなたが([AzureのSQLデータウェアハウスワークロード・パターンとアンチパターン]をご覧くださいhttps://blogs.msdn.microsoft.com/sqlcat/2017/09/05/azure-sql-data-warehouse-workload-patterns-and-antpatterns/)。 – wBob

答えて

0

など

無関係です。注文データが必要な場合は、クライアントはSELECTクエリのORDER BY句でリクエストするだけです。

+0

私はORDER BYを使って、順序付けられた形式で出力を得ることができます。しかし、誰かが毎日比較して計算を実行したいのであれば(例:DBの各日に対して前日の価格と株価を比較する)、データが注文されておらず、増分IDフィールド? – user8598455

+0

TSQLウィンドウ関数を使用できます。 –

+0

ユーザーの中には、Pythonを介してのみデータにアクセスするものがあります。行IDを(ORDER BYの日付に基づいて)DBに追加することをお勧めしますか?そうすれば、コード内で自分自身で行う必要はありません。 – user8598455

1

Azure SQLデータウェアハウスで行レベルの操作を行うと、大量のデータが移動する可能性があるため、プロセスを確認してください。

+0

コードを表示できますか? –

+0

たとえ実際のDBにデータが挿入/更新/削除されていないのに計算結果が出力されていますか? – user8598455

0

SELECT文に順に追加します。

cursor = conn.cursor() 
cursor.execute("SELECT * FROM index_att ORDER BY [MyDate]") 
i = 0 
for row in cursor: 
    i += 1 print(i) 
関連する問題