- Pythonの場合:
import pandas as pd
# データセットの作成
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Value': [10, 20, 15, 25, 5, 30]}
df = pd.DataFrame(data)
# グループごとにトップランクを抽出
top_ranks = df.groupby('Group')['Value'].nlargest(1)
print(top_ranks)
- SQLの場合 (例: MySQL):
SELECT Group, Value
FROM (
SELECT Group, Value,
ROW_NUMBER() OVER (PARTITION BY Group ORDER BY Value DESC) AS Rank
FROM your_table_name
) AS ranked
WHERE Rank = 1;
- Rの場合:
# データセットの作成
data <- data.frame(Group = c('A', 'A', 'B', 'B', 'C', 'C'),
Value = c(10, 20, 15, 25, 5, 30))
# グループごとにトップランクを抽出
top_ranks <- aggregate(Value ~ Group, data, FUN = function(x) max(x))
print(top_ranks)
これらの例では、まずデータセットをグループごとに分割し、各グループ内の値をランク付けします。その後、各グループの最上位のランクを持つレコードを抽出します。言語やツールによって文法や関数名が異なる場合がありますが、基本的なアプローチは共通です。