假设我们有以下数据结构:
s_cui o_cui year
D000001 D000001 1975
D000001 D000001 1976
D000001 D002413 1976
D000001 D002413 1979
D000001 D002413 1987
D000001 D004298 1976
D000002 D000002 1985
D000003 D000900 1975
D000003 D000900 1990
D000003 D004134 1983
D000003 D004134 1986
我需要计算重复对(在第1列和第2列中),并且每个这样的对分配第3列中的最低值。对于此示例,输出应为:
s_cui o_cui freq year
D000001 D000001 2 1975
D000001 D002413 3 1976
D000001 D004298 1 1976
D000002 D000002 1 1985
D000003 D000900 2 1975
D000003 D004134 2 1983
我最初的尝试是在这里(没有year
字段):
SELECT s_cui, o_cui, COUNT(*) FROM table GROUP BY s_cui, o_cui;
答案 0 :(得分:1)
你关闭了!你只需要添加min(年)。
看起来你想要每个s_cui,o_cui和count的最早出现一年。
SELECT s_cui, o_cui, COUNT(*) freq, min(`year`) as `year`
FROM table
GROUP BY s_cui, o_cui;
最小(年)将返回每个配对的s_cui和o_cui的最早年份,同时仍保留计数。我把它放在一年左右,因为它是reserved word in mySQL。
虽然我不知道"配对"每个"组"更多地生效