0

我知道足够多的 MySQL 来做简单的连接,但我缺乏任何高级的知识。我知道我可以去掉 PHP 中的行,但我相信正确的查询会更干净。

我目前正在做的是:

询问:

SELECT DAYOFWEEK(r.`date`) AS weekNumber,  r.`date`AS scoreDate, qf.target, r.totalScore FROM results;

结果:

weekNumber, scoreDate, target, totalScore
4, '2012-02-29', 85, 100
3, '2012-03-06', 85, 100
3, '2012-03-06', 85, 75
3, '2012-03-06', 85, 42

是否有可能:

  • 按周数分组,
  • 更改分数日期以显示“从和到日期”,
  • 总结目标并除以组合在一起的行数
  • 并且对 totalScore 做同样的事情,就像我们对目标做的一样?

我想从查询中得到的结果是:

weekNumber, scoreDate, target, totalScore
4, '2012-02-29 to 2012-02-29', 85, 100
3, '2012-03-06 to 2012-03-06', 85, 72.3

有人可以帮我创建查询或告诉我如何生成我正在寻找的结果吗?

谢谢!

4

1 回答 1

1
SELECT q1, AVG(q2) as target, max(q3) as `end`, MIN(q3) as `start` from q GROUP BY q1

上面的查询应该做你想做的事。只需更改您的字段的 q1 - q3。和 q 你的表名。

结果:

________________________________________
| q1 | target | end        | start     |
----------------------------------------
| 3  | 8.0000 | 2012-03-09 | 2012-03-08|
----------------------------------------
| 4  | 2.0000 | 2012-03-07 | 2012-03-07|

数据库:

________________________
| q1 | q2 | q 3        | 
------------------------
| 3  | 7  | 2012-03-09 |
| 3  | 9  | 2012-03-08 |
| 4  | 2  | 2012-03-07 |

来源: http ://www.w3schools.com/sql/sql_func_avg.asp

于 2012-03-09T12:53:17.130 回答