name id
--------------------
ramesh 1
sonali 1
yash 2
garima 3
dipti 3
vashali 4
karishma 5
ramesh 6
sonali 6
--------------------
output:
name1 with name2 %
--------------------------------
ramesh sonali 66.66%
garima Dipti 16.66%
答案 0 :(得分:0)
这是我能得到的最接近的 - 但问题不是很清楚:
SELECT names, 100*ratio percent
FROM (
SELECT names, COUNT(*) c, FIRST(names_c) names_c, RATIO_TO_REPORT(c) OVER() ratio
FROM (
SELECT id, GROUP_CONCAT(UNIQUE(name)) names, COUNT(*) names_c
FROM
(SELECT 1 id, 'ramesh' name),
(SELECT 1 id, 'sonali' name),
(SELECT 2 id, 'rash' name),
(SELECT 3 id, 'garima' name),
(SELECT 3 id, 'dipti' name),
(SELECT 4 id, 'vashali' name),
(SELECT 5 id, 'karishma' name),
(SELECT 6 id, 'ramesh' name),
(SELECT 6 id, 'sonali' name),
GROUP BY 1
)
GROUP BY names
)
WHERE names_c>1