我正试图在我们的首席执行官的要求下解决这个问题,我们每小时都有一个与我们的数据库表对话的CRON脚本,这个表只包含两行,一行用于输出值,用于{ {1}}。我每小时运行一次,每天24小时。该表如下所示。
times per day returned
我正在尝试创建一个查询,每天返回+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| times | int(2) | YES | | NULL | |
| value | char(64) | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
,X value
,
所以我们说......
times
我希望在24小时内返回INSERT INTO table
(times, value)
VALUES
(1, 'Value 1'),
(4, 'Value 2'),
(9, 'Value 3');
一次,在24小时内返回Value 1
四次,Value 2
九次。因为9不能被24整除,所以我们可以使用floor()或ceil()或round(),只要在24小时内返回9次就无所谓。
我甚至无法直观地查询此查询,更不用说实现它= /
了当我开始工作时,我会发布我正在尝试的东西......
更新
这会让我花几个小时来运行它看起来像
Value 3
SELECT (24 / times) AS hours FROM table;
答案 0 :(得分:0)
您可以创建一个包含24行的单独表格,每天每小时一个,并包括是否应该在该小时内返回特定值?然后加入,而不是试图计算一些东西。
像:
+-------------+-----------+-----------+-----------+
|Hr of day |Run Value 1|Run Value 2|Run Value 3|
+-------------+-----------+-----------+-----------+
| 1:00am | 1 | 0 | 1 |
| 2:00am | 1 | 0 | 0 |
| 3:00am | 1 | 0 | 0 |
| 4:00am | 1 | 0 | 1 |
| 5:00am | 1 | 0 | 0 |
| 6:00am | 1 | 1 | 0 |
| ...