Sql google大查询对多个列的唯一组合进行排序

Sql google大查询对多个列的唯一组合进行排序,sql,distinct,google-bigquery,web-traffic,referrals,Sql,Distinct,Google Bigquery,Web Traffic,Referrals,我们已经有一个网站的所有推荐表:每个推荐一个条目 String : referral String : target integer: date 现在,我们希望使用大查询根据计数对所有转介进行排序,如: referral : target, count: google.com/... : welcome.html, 28353 bing.com/... : welcome.html, 5334 gmail.com/... : about.html

我们已经有一个网站的所有推荐表:每个推荐一个条目

String : referral
String : target
integer: date
现在,我们希望使用大查询根据计数对所有转介进行排序,如:

referral       : target,         count:

google.com/... : welcome.html,   28353 
bing.com/...   : welcome.html,   5334 
gmail.com/...  : about.html,     343
...

大查询sql应该是什么?

如果我理解正确,那么:

SELECT COUNT(path) AS path_count, path
FROM (
  SELECT concat(referrer, target) AS path
  FROM [mydataset.referrallog])
GROUP BY path ORDER BY path_count DESC;

如果我猜对了,那么:

SELECT COUNT(path) AS path_count, path
FROM (
  SELECT concat(referrer, target) AS path
  FROM [mydataset.referrallog])
GROUP BY path ORDER BY path_count DESC;

为什么不按两列进行分组

SELECT referral, target, COUNT(*) as cnt
FROM [mydataset.referrallog] 
GROUP BY referral, target
ORDER BY cnt DESC

为什么不按两列进行分组

SELECT referral, target, COUNT(*) as cnt
FROM [mydataset.referrallog] 
GROUP BY referral, target
ORDER BY cnt DESC

我必须删除distinct,这样它才能正确计数。选择count path,path FROM SELECT concatreferrer,target as path FROM[mydataset.referrallog]group by path,但此sql尚未根据count对结果进行排序。因此,最终答案是SELECT count path as path_count,path FROM SELECT concatreferrer,target as path FROM[mydataset.referrallog]按路径分组按路径排序按路径计数说明。用户1516770:如果您可以编辑您的原始答案,我将批准它!我必须删除distinct,这样它才能正确计数。选择count path,path FROM SELECT concatreferrer,target as path FROM[mydataset.referrallog]group by path,但此sql尚未根据count对结果进行排序。因此,最终答案是SELECT count path as path_count,path FROM SELECT concatreferrer,target as path FROM[mydataset.referrallog]按路径分组按路径排序按路径计数说明。用户1516770:如果您可以编辑您的原始答案,我将批准它!