亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6599 | 回復(fù): 12
打印 上一主題 下一主題

求效率最高的mysql語句 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-04-18 11:29 |只看該作者 |倒序瀏覽
5可用積分
有一組人:甲乙丙丁...,
表中是每小時統(tǒng)計的他們的收入數(shù)據(jù),
現(xiàn)在要求統(tǒng)計他們每天的匯總收入的單小時最高值

比如如下數(shù)據(jù),統(tǒng)計完應(yīng)該是
2012-04-10 的匯總收入的小時最高值13(11點時的甲乙丙丁小時收入的和:2+3+3+5=13)
2012-04-11 的匯總收入的小時最高值是22(發(fā)生在10點)

求sql語句。。。。

數(shù)據(jù)如下
  1. 人   時間                        收入
  2. 甲   2012-04-10  10:10:10      1
  3. 乙   2012-04-10  10:10:10      2
  4. 丙   2012-04-10  10:10:10      3
  5. 丁   2012-04-10  10:10:10      4
  6. 甲   2012-04-10  11:10:10      2
  7. 乙   2012-04-10  11:10:10      3
  8. 丙   2012-04-10  11:10:10      3
  9. 丁   2012-04-10  11:10:10      5
  10. 甲   2012-04-11  10:10:10      3
  11. 乙   2012-04-11  10:10:10      6
  12. 丙   2012-04-11  10:10:10      5
  13. 丁   2012-04-11  10:10:10      8
  14. 甲   2012-04-11  11:10:10      2
  15. 乙   2012-04-11  11:10:10      3
  16. 丙   2012-04-11  11:10:10      3
  17. 丁   2012-04-11  11:10:10      5
復(fù)制代碼

最佳答案

查看完整內(nèi)容

寫了個示例:mysql> select * from t;+------+---------------------+--------+| u | date | salary |+------+---------------------+--------+| a | 2012-04-10 10:10:10 | 1 || b | 2012-04-10 10:10:10 | 2 || c | 2012-04-10 10:10:10 | 3 || d | 2012-04-10 10:10:10 | 4 || a | 2012-04-10 11:10:10 | 2 || b | 2012-04-10 11:10:10 | 3 || c | 2012- ...

論壇徽章:
0
2 [報告]
發(fā)表于 2012-04-18 11:29 |只看該作者
寫了個示例:
mysql> select * from t;
+------+---------------------+--------+
| u    | date                | salary |
+------+---------------------+--------+
| a    | 2012-04-10 10:10:10 |      1 |
| b    | 2012-04-10 10:10:10 |      2 |
| c    | 2012-04-10 10:10:10 |      3 |
| d    | 2012-04-10 10:10:10 |      4 |
| a    | 2012-04-10 11:10:10 |      2 |
| b    | 2012-04-10 11:10:10 |      3 |
| c    | 2012-04-10 11:10:10 |      3 |
| d    | 2012-04-10 11:10:10 |      5 |
| a    | 2012-04-11 10:10:10 |      3 |
| b    | 2012-04-11 10:10:10 |      6 |
| c    | 2012-04-11 10:10:10 |      5 |
| d    | 2012-04-11 10:10:10 |      8 |
| a    | 2012-04-11 11:10:10 |      2 |
| b    | 2012-04-11 11:10:10 |      3 |
| c    | 2012-04-11 11:10:10 |      3 |
| d    | 2012-04-11 11:10:10 |      5 |
+------+---------------------+--------+
16 rows in set (0.00 sec)

mysql> select date(date),max(ss) from(
    -> select date,sum(salary) ss from t group by date) a group by date(date);
+------------+---------+
| date(date) | max(ss) |
+------------+---------+
| 2012-04-10 |      13 |
| 2012-04-11 |      22 |
+------------+---------+
2 rows in set (0.00 sec)

論壇徽章:
0
3 [報告]
發(fā)表于 2012-04-18 11:50 |只看該作者
我感覺這個終極優(yōu)化不在SQL層面啊,如果用SQL層面標準的分組統(tǒng)計,取最大值就是最簡化的寫法了~~

論壇徽章:
0
4 [報告]
發(fā)表于 2012-04-18 12:22 |只看該作者
回復(fù) 3# junsansi


    這個好用,可我還想知道是哪個時間點發(fā)生最大值,有辦法嗎

論壇徽章:
0
5 [報告]
發(fā)表于 2012-04-18 13:11 |只看該作者
回復(fù) 4# yuhuohu
根據(jù)三思大哥的Sql, 作一點修改就可以滿足你 的要求了,
不過個人優(yōu)化一下,如果這個只是報表還行,實時查詢的話,表設(shè)計就有問題了。
還有l(wèi)z大哥這么多分,才給5分


mysql> select * from t_group;
+------+---------------------+--------+
| user | time                | salary |
+------+---------------------+--------+
| a    | 2012-04-10 10:10:10 |      1 |
| b    | 2012-04-10 10:10:10 |      2 |
| c    | 2012-04-10 10:10:10 |      3 |
| d    | 2012-04-10 10:10:10 |      4 |
| a    | 2012-04-11 22:10:10 |     50 |
| b    | 2012-04-11 11:10:10 |     12 |
| b    | 2012-04-10 11:10:10 |     12 |
+------+---------------------+--------+
7 rows in set (0.00 sec)

mysql> select time ,max(ss) from (select time,sum(salary) ss from t_group group by date_format(time,'%Y-%m-%d:%k') )a group by date(time);
+---------------------+---------+
| time                | max(ss) |
+---------------------+---------+
| 2012-04-10 10:10:10 |      12 |
| 2012-04-11 11:10:10 |      50 |
+---------------------+---------+
2 rows in set (0.00 sec)

   

論壇徽章:
0
6 [報告]
發(fā)表于 2012-04-18 13:29 |只看該作者
子查詢的中的分組精確到每天的小時(24小時制), 外層再以日期分組求當天的Max值,也就是子查詢中的小時每組中最大值的,

論壇徽章:
0
7 [報告]
發(fā)表于 2012-04-18 13:57 |只看該作者
RogerZhuo 發(fā)表于 2012-04-18 13:11
回復(fù) 4# yuhuohu
根據(jù)三思大哥的Sql, 作一點修改就可以滿足你 的要求了,
不過個人優(yōu)化一下,如果這個只 ...


謝謝哥們,其實我是點錯了才點到懸賞的{:2_179:}

論壇徽章:
0
8 [報告]
發(fā)表于 2012-04-18 14:01 |只看該作者
回復(fù) 7# yuhuohu
不客氣, 開玩笑的呢

   

論壇徽章:
0
9 [報告]
發(fā)表于 2012-04-18 14:33 |只看該作者

論壇徽章:
0
10 [報告]
發(fā)表于 2012-05-03 12:56 |只看該作者
這么快就解決了?、
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP