如何在mysql中查找行中的相对比例

Hua*_*ieh 3 mysql

我是MySQL查询的新手,所以请帮我解决这个问题,谢谢!

我有一张桌子:

query   url   num_clicks
-------------------------
qa      ua    20
qa      ub    30
qa      uc    50
qb      ud    10
qb      ue    90

我想根据相同的查询计算相对比例,如:

query   url   num_clicks  ratio
--------------------------------
qa      ua    20          0.2
qa      ub    30          0.3
qa      uc    50          0.5
qb      ud    10          0.1
qb      ue    90          0.9

我怎么能用一个查询呢?谢谢!

squ*_*man 5

SELECT query,url,num_clicks,num_clicks/t.totalclicks AS ratio
FROM MyTable
INNER JOIN (
   SELECT
   query,SUM(num_clicks) AS totalclicks
   GROUP BY query
) AS t ON MyTable.query = t.query
Run Code Online (Sandbox Code Playgroud)