SQLite - 查询返回相关记录

时间:2017-04-09 18:08:56

标签: python mysql sqlite

我有一个数据库,其中包含如下所述的关系表。我想获得每个客户给出的每种产品的平均分数,如所需的输出所示。

“GRP”

g_id    g_name
1       Ag.f
2       Gh.h

“customers”,其中c_g_id引用“grp”中的g_id

c_id    c_name    g_id
"1"     "DA"      "1"
"2"     "AŠ"      "1"
"3"     "EK"      "1"
"4"     "PK"      "1"
"5"     "DD"      "2"
"6"     "AA"      "2"
"7"     "EE"      "2"

“products”,其中g_id引用“grp”中的g_id

m_id    sequence_no  g_id   name

"1"     "1"          "1"    "product1"
"2"     "2"          "1"    "product2"
"3"     "3"          "1"    "product3"
"4"     "1"          "2"    "p1"
"5"     "2"          "2"    "p2"

“得分”

c_id引用“客户中的c_id” m_id引用“products”中的m_id

score_id    customer_name   c_id    m_id    score

"1"         "DA"            "1"     "1"     "2" 
"2"         "DA"            "1"     "2"     "2" 
"3"         "DA"            "1"     "3"     "2" 
"4"         "AŠ"            "2"     "1"     "3" 
"5"         "AŠ"            "2"     "2"     "2" 
"6"         "AŠ"            "2"     "3"     "3" 
"7"         "EK"            "3"     "1"     "2" 
"8"         "EK"            "3"     "2"     "3" 
"9"         "EK"            "3"     "3"     "1" 
"10"        "PK"            "4"     "1"     "2" 
"11"        "PK"            "4"     "2"     "3" 
"12"        "PK"            "4"     "3"     "1" 
"13"        "DD"            "5"     "4"     "2" 
"14"        "DD"            "5"     "5"     "2" 
"15"        "AA"            "6"     "4"     "3" 
"16"        "AA"            "6"     "5"     "2" 
"17"        "EE"            "7"     "4"     "2" 
"18"        "EE"            "7"     "5"     "3"

期望的输出:

sequence_no g_id    name        avg.score
1           1       "product1"  (2+3+2+2)/4
2           1       "product2"  (2+2+3+3)/4
3           1       "product3"  (2+3+1+1)/4

1 个答案:

答案 0 :(得分:1)

你可以使用avg功能和分组

select  products.name, products.g_id, avg(score)
from scores
inner join products on products.m_id = scores.m_id
group by products.name, products.g_id

如果您需要一些相关的列

,最终可以加入其他表
相关问题