假设我有一个数据库employee.db,创建如下:
# %% CREATE DATAFRAME
data = {'Name': ['John', 'Jane', 'Adam', 'Jane', 'Frank', 'Mary'],
'Age': [35, 28, 42, 32, 35, 39],
'Department': ['HR', 'IT', 'Finance', 'IT', 'Sales', 'IT']}
df = pd.DataFrame(data)
# %% CREATE A SQL DATABASE ENGINE
engine = create_engine('sqlite:///employee.db', echo=True)
# %% CONVERT THE DATA FRAME TO SQL
df.to_sql('employee', con=engine, if_exists='replace', index=False)
# %% CLOSE THE CONNECTION
engine.dispose()
我正在尝试读取数据库,使用
from sqlalchemy import create_engine, text
import pandas as pd
# %% CREATE A SQL DATABASE ENGINE
engine = create_engine('sqlite:///employee.db', echo=True)
# %% QUERY THE SQL TABLE
with engine.connect() as conn:
# INSERT SQL QUERIES HERE
# %% CLOSE THE CONNECTION
engine.dispose()
我想计算每个部门最常见的名称。如果部门为“IT”,查询必须显示“Jane”。
ORDER BY
和 聚合函数的文档。
SELECT COUNT(DISTINCT e.Department)
FROM employee e;
SELECT e.Department, COUNT(*) AS count
FROM employee e
GROUP BY
e.Department
ORDER BY
count DESC
LIMIT 1;
SELECT e.Name
FROM employee e
ORDER BY
e.Age DESC;
帮自己一个忙,不要将
Age
存储在数据库中,它会一直变化。相反,存储出生日期并计算年龄。