ari*_*rik 2 mysql sorting group-by distinct
我有一张桌子,像那样:
| B | 1 |
| C | 2 |
| B | 2 |
| A | 2 |
| C | 3 |
| A | 2 |
Run Code Online (Sandbox Code Playgroud)
我想获取它,但排序和分组.也就是说,我希望它按字母分组,但按组的最高总和排序.另外,我想显示组内的所有条目:
| C | 3 |
| C | 2 |
| A | 2 |
| A | 2 |
| B | 2 |
| B | 1 |
Run Code Online (Sandbox Code Playgroud)
顺序就是这样,因为C有3和2. 3 + 2 = 5,对于A高于2 + 2 = 4,对于B高于2 + 1 = 3.
我需要显示所有"分组"字母,因为还有其他列是不同的,我需要显示所有列.
编辑:
感谢您的快速答复.但是,我有勇气进一步询问.
我有这个问题:
SELECT * FROM `ip_log` WHERE `IP` IN
(SELECT `IP` FROM `ip_log` GROUP BY `IP` HAVING COUNT(DISTINCT `uid`) > 1)
GROUP BY `uid` ORDER BY `IP`
Run Code Online (Sandbox Code Playgroud)
上面描述中的字母是ip
(我需要它按IP地址分组),数字是timestamp
(我需要它按总和排序(或仅用作排序参数)).我应该创建一个临时表,然后使用下面的解决方案吗?
select t.Letter, t.Value
from MyTable t
inner join (
select Letter, sum(Value) as ValueSum
from MyTable
group by Letter
) ts on t.Letter = ts.Letter
order by ts.ValueSum desc, t.Letter, t.Value desc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1140 次 |
最近记录: |