,所以我有这样的表中的数据排名:的mysql进行分组与领带
id total group_id
1897 738 1
2489 716 2
2325 715 3
1788 702 2
1707 699 3
2400 688 3
2668 682 2
1373 666 1
1494 666 1
1564 660 1
2699 659 1
1307 648 4
1720 645 4
2176 644 1
1454 644 4
2385 639 3
1001 634 2
2099 634 4
1006 632 1
2587 630 3
1955 624 3
1827 624 4
2505 623 4
2062 621 3
1003 618 1
2286 615 4
2722 609 4
我怎么可以排名每组的IDS基于总,并给予同级别的时候有一搭?
我曾尝试下面这种解决方案,但它不走关系的照顾。
SELECT g1.admission_no
, g1.total
, g1.stream_id
, COUNT(*) AS rn
FROM ranktest AS g1
JOIN ranktest AS g2
ON (g2.total, g2.admission_no) >= (g1.total, g1.admission_no)
AND g1.stream_id = g2.stream_id
GROUP BY g1.admission_no
, g1.stream_id
, g1.total
ORDER BY g1.stream_id
, total ;
预计
id total group_id rank
1897 738 1 1
2489 716 2 1
2325 715 3 1
1788 702 2 2
1707 699 3 2
2400 688 3 3
2668 682 2 3
1373 666 1 2
1494 666 1 2
1564 660 1 3
2699 659 1 4
1307 648 4 1
1720 645 4 2
2176 644 1 4
1454 644 4 3
2385 639 3 4
1001 634 2 4
2099 634 4 4
1006 632 1 5
2587 630 3 5
1955 624 3 6
1827 624 4 5
2505 623 4 6
2062 621 3 6
1003 618 1 6
2286 615 4 7
2722 609 4 8
[选择](http://dev.mysql.com/doc/refman/5.7/en/select.html)+ [聚集体](http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html)。我们不会为你写代码。你写代码,我们(也许)试着修复它。 –
@MarcB我有这段代码使用连接,但ID没有照顾的关系,我不知道如何解决它 – GOA
所以显示此代码。但是如果你想要关系,你需要额外的查询脚手架来检测关系并且拉出产生这些关系的记录。 –