作者fantasywater (狂想)
看板Database
标题Re: [SQL ] 如何找出频率最高的查询一问
时间Tue Feb 5 00:06:35 2008
※ 引述《flakchen (flak)》之铭言:
: ※ 引述《fantasywater (狂想)》之铭言:
: : ------------------------------------------------
: : 转换後的结果如下,还是不行
: : 这招我昨天有想到,但还是跑不出来 Q_Q
: : 我应该没有转换错吧...?!
: : mysql> Select Distinct T1.dno,T1.Salary
: : -> From employee as T1
: : -> Where salary=(select T2.salary
: : -> from employee as T2
: 少了 where T1.dno=T2.dno
: : -> group by T2.dno
: : -> order by count(*) desc
: : -> limit 1);
: : Where salary=(select T2.salary ...top 1
: : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : 这样的话这里面是不是只剩下一笔
: 因为少了那一句的关系
-----------------------------------------------------
结果如下:
mysql> Select Distinct T1.dno,T1.Salary
: -> From employee as T1
: -> Where salary=(select T2.salary
: -> from employee as T2
where T1.dno=T2.dno
: -> group by T2.dno
: -> order by count(*) desc
: -> limit 1);
+------+--------+
| dno | Salary |
+------+--------+
| 5 | 30000 |
| 1 | 55000 |
| 4 | 43000 |
+------+--------+
3 rows in set (0.00 sec)
--------------------------------------------------------
会取到下面箭头所指示的那三笔资料
里面的 order by count(*) desc 不知为何似乎没有作用到
而取到最少出现的那几笔资料
+------+--------+
| dno | salary |
+------+--------+
| 5 | 30000 | <---
| 5 | 25000 |
| 5 | 25000 |
| 5 | 38000 |
| 1 | 55000 | <---
| 4 | 43000 | <---
| 4 | 25000 |
| 4 | 25000 |
+------+--------+
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.8.66
1F:推 flakchen:咦...难道MySQL不能这样下?!..... 02/05 10:21
2F:推 Antzzz:改成group by salary试看看 02/06 00:17
3F:→ fantasywater:改成group by t2.salary可以得到正确的结果! 02/06 16:31