我有一個化學元素的片段資料集,如下所示

我想創建一個名為“abundance_rank”的新欄位,其中等級 1 表示最高豐度值(參考“地殼中的豐度”列)
例如,(symbol,breedness_in_earth_crust) 的行數為 (A, 100), (B, 100), (C, 100), (D, 50),(symbol,breedness_in_earth_crust,abundance_rank) 的預期記錄將是 (A, 100, 1), (B, 100, 1), (C, 100, 1), (D, 50, 4)。請注意,D 的豐度等級為 4。
我用下面的代碼創建了一個新的欄位abundance_rank
import sqlite3
conn = sqlite3.connect('chemicals.sqlite')
cur = conn.cursor()
cur.execute('ALTER TABLE chemicalElements ADD COLUMN abundance_rank INTEGER')
conn.commit()
uj5u.com熱心網友回復:
該RANK()分析功能,似乎是你想要的這里:
SELECT Symbol, abundance,
RANK() OVER (ORDER BY abundance DESC) AS abundance_rank
FROM elements
ORDER BY abundance_rank DESC;
您的 Python 代碼可能如下所示:
import sqlite3
conn = sqlite3.connect('chemicals.sqlite')
cur = conn.cursor()
sql = """SELECT Symbol, abundance,
RANK() OVER (ORDER BY abundance DESC) AS abundance_rank
FROM elements
ORDER BY abundance_rank DESC"""
for row in cur.execute(sql):
print(row)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360096.html
