計算機科学のブログ

ほしい物リスト

SQL - SQLite - 高度なSELECT文 - 新たな目でデータを見る - 関数、合計、SUM

Head First SQL ―頭とからだで覚えるSQLの基本Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 6章(高度なSELECT文 - 新たな目でデータを見る)、p.265(エクササイズ - 気楽にやってみよう)の解答を求めてみる。

sample7.sql

create table cake_sales(
    sales real
);

コード

sample7.py

#!/usr/bin/env python3
import random
import sqlite3

con = sqlite3.connect('temp.db')
cur = con.cursor()

with open('sample7.sql') as f:
    cur.executescript(f.read())

sql = """
insert into cake_sales values (?)
"""

for _ in range(10):
    cur.execute(sql, (random.random() * 10,))
con.commit()

sql = """select * from cake_sales"""
cur.execute(sql)
for row in cur.fetchall():
    print(row)

sql = """
select sum(sales) from cake_sales
"""


cur.execute(sql)
for row in cur.fetchall():
    print(row)

cur.close()
con.close()

入出力結果(Terminal, Zsh)

% ./sample7.py 
(9.250153253485326,)
(8.644595792613446,)
(9.325735234303234,)
(6.702247365925525,)
(6.313578380789554,)
(7.114478874759102,)
(6.092793950640796,)
(5.114476666989295,)
(8.679189749871812,)
(3.0395021140351752,)
(70.27675138341327,)
%