我有一个看起来像这样的表:
id count
1 100
2 50
3 10
Run Code Online (Sandbox Code Playgroud)
我想添加一个名为cumulative_sum的新列,因此表格如下所示:
id count cumulative_sum
1 100 100
2 50 150
3 10 160
Run Code Online (Sandbox Code Playgroud)
是否有可以轻松完成此操作的MySQL更新语句?实现这一目标的最佳方法是什么?
我正在尝试为网站编写搜索功能,我已经决定使用MySQL临时表来处理数据输入的方法,通过以下查询:
CREATE TEMPORARY TABLE `patternmatch`
(`pattern` VARCHAR(".strlen($queryLengthHere)."))
INSERT INTO `patternmatch` VALUES ".$someValues
Run Code Online (Sandbox Code Playgroud)
$someValues具有布局的一组数据在哪里('some', 'search', 'query')- 或者基本上是用户搜索的数据.然后我images根据表中的数据搜索我的主表,patternmatch如下所示:
SELECT images.* FROM images JOIN patternmatch ON (images.name LIKE patternmatch.pattern)
Run Code Online (Sandbox Code Playgroud)
然后我根据每个结果与输入匹配的程度应用启发式或评分系统,并通过启发式等显示结果.
我想知道创建临时表需要多少开销?我知道它们只存在于会话中,并在会话结束后立即被删除,但如果我每秒有数十万次搜索,我会遇到什么样的性能问题?有没有更好的方法来实现搜索功能?
在MySQL中获取累积总和的"正确"查询是什么?
我有一个表格,我保存有关文件的信息,一列列表包含文件的大小(以字节为单位).(实际文件保存在某处的磁盘上)
我想得到这样的累积文件大小:
+------------+---------+--------+----------------+
| fileInfoId | groupId | size | cumulativeSize |
+------------+---------+--------+----------------+
| 1 | 1 | 522120 | 522120 |
| 2 | 2 | 316042 | 316042 |
| 4 | 2 | 711084 | 1027126 |
| 5 | 2 | 697002 | 1724128 |
| 6 | 2 | 663425 | 2387553 |
| 7 | 2 | 739553 | 3127106 |
| 8 | 2 | 700938 | 3828044 |
| 9 | …Run Code Online (Sandbox Code Playgroud) 我正在尝试检索特定A/B测试组合每天的访问次数和转化次数.每种组合代表A/B测试的不同变化.在这里,我只使用'1'并'2'代表变化,但从技术上讲,可能会有更多的变化.
我写了以下2个查询,它们独立工作.是否可以组合这些或写一个检索我想要的数据的查询?
访问查询:
SELECT DATE(visit.created), visit.combination, COUNT(visit.id)
FROM visit
WHERE visit.user_id = 6
AND visit.experiment_id = 1
GROUP BY DATE(visit.created), visit.combination
Run Code Online (Sandbox Code Playgroud)
访问结果:
转化查询:
SELECT DATE(conversion.created), conversion.combination, COUNT(conversion.id)
FROM conversion
WHERE conversion.user_id = 6
AND conversion.experiment_id = 1
AND conversion.goal_id = 1
GROUP BY DATE(conversion.created), conversion.combination
Run Code Online (Sandbox Code Playgroud)
转化结果:
如果我可以检索一个正在运行的总计(累计)计数,如下所示,请查看最后两列.我已经按照组合对下表进行了分组,因此累积计数更容易理解:
+---------------+-------------+----------------------+-----------------+--------------+--------------+
| DATE(created) | combination | COUNT(conversion.id) | COUNT(visit.id) | cumulative_c | cumulative_v |
+---------------+-------------+----------------------+-----------------+--------------+--------------+
| 2015-11-17 | 1 | 1 | 3 | 1 | 3 |
| …Run Code Online (Sandbox Code Playgroud) 可能重复:
计算MySQL中的运行总计
我正在使用MySQL和PHP监控自2011年以来在应用程序中创建的用户数量.作为查询的一部分,我还想包括一个运行总计.
SELECT
DATE_FORMAT(created,'%Y%m%d') as 'Date',
COUNT(item_id) as 'NewUsers'
FROM AP_user
WHERE YEAR(created) > 2011
AND user_groups = '63655'
AND user_active = 1
AND userID NOT IN $excludedUsers
GROUP BY MONTH(created) ASC
Run Code Online (Sandbox Code Playgroud)
我能够按月返回"用户",但如何将运行总计作为此查询的一部分?