- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一张包含一些统计数据的表格。示例:
date userId attempts good bad2010-08-23 1 5 4 12010-08-23 2 10 6 42010-08-23 3 6 3 32010-08-23 4 8 2 6
Each user has to do something, and the outcome is either good or bad. I'd like to find out what the relative score is for each user, compared to the other users on that day. Example:
User 1 made 5 attempts, and 4 of those were good. So 4 / 5 = 80%
of his attempts were good. For the other users that day it was 60%, 50% and 25%. So the relative score of successful attempts for user 1 on that day is 80 / (80 + 60 + 50 + 25) ≈ 37%
.
But I'm stuck at this point:
SELECT
date,
userId,
( (good / attempts) / x ) * 100 AS score_good
( (bad / attempts) / y ) * 100 AS score_bad
FROM stats
GROUP BY date, userId -- ?
其中 x 是所有 (good / attempts)
的总和那天,y 是所有 (bad / attempts)
的总和在同一天。这可以在同一个查询中完成吗?
我希望结果是例如
date userId score_good2010-08-23 1 37%2010-08-23 2 28% (60 / (80 + 60 + 50 + 25))etc
或者:
userId score_good_total1 ...
在哪里score_good_total
将是所有 score_good
的总和分数除以天数。
我可以用子查询替换 x 和 y,但这似乎行不通,而且当我希望数据按月份分组或所有可用日期的总分时,可能会导致过多的负载。
最佳答案
这提取了一些 SQL-fu,但它在一个非常简单的查询中是完全可行的。
// this would be the working query
SELECT
*,
@score := good / attempts * 100 AS score,
@t_score := (SELECT SUM(good / attempts * 100) FROM stats) as t_score ,
@score / @t_score as relative_score_good
FROM stats
在下面,您可以使用我用来复制和玩弄结果的值。
这里要注意的是 inside 子查询,即 uncorrelated scalar subquery
因此,将只对所有行运行一次(只需使用 EXPLAIN
运行查询即可看到这里实际上只有两个查询。
要注意的第二件事(也是非常重要的!) 是 user defined variables
写成 @variable
。
出于复制目的,您可以使用这两个命令重建示例表(如果您可以向社区提供 SQL 以生成演示值,那总是很好)。
// create the demo table
CREATE TABLE `test`.`stats` (
`date` DATE NOT NULL ,
`id` INT NOT NULL ,
`attempts` INT NOT NULL ,
`good` INT NOT NULL ,
`bad` INT NOT NULL ,
INDEX ( `id` , `attempts` , `good` , `bad` )
) ENGINE = MYISAM
// inject some values
INSERT INTO `test`.`stats` (`date`,`id`,`attempts` ,`good` ,`bad`)
VALUES
('2010-08-23', '1', '5', '4', '1'),
('2010-08-23', '2', '10', '6', '4'),
('2010-08-23', '3', '6', '3', '3'),
('2010-08-23', '4', '8', '2', '6');
希望对您有所帮助!就在我离开办公室时看到了这个问题,尽管有人会抢先一步。电影院和 4 小时后,还没有答案,万岁! ;)
关于mysql - 坚持使用 MySQL 和 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551253/
在我的 POJO 中,我有这个: @Transient private int qtyMentee; 在我的 DAO 中我有这个查询: public List findQtyMentee(){
如果我正在编写的应用程序终止,我需要将当前位置存储到 iphone 的“磁盘”中。然后,当应用程序再次启动时,我想恢复这些信息。但是,CLLocation 坐标属性是只读的。 如何在程序调用之间保存此
这个问题有点来回,因为我已经了解了一些关于 unix 系统的 g++ 知识(抱歉,如果我把任何人搞砸了)。 对于我目前正在尝试完成的项目,我想获得 twitcurl使用 Xcode 和 OpenFra
我想在表格中显示用户的姓名以及本周发布的照片数量。 示例:用户 1 发布了 10 张照片,用户 2 发布了 20 张照片...... 所以我需要一个计数,但我不知道如何。 图片型号: public
我正在尝试保留具有@OneToMany 和@ManyToOne 关系的实体。 @OneToMany(mappedBy="customer", cascade=CascadeType.ALL, fetc
我有一个表单,我从另一个表中获取字段,例如,第一个字段是硬编码的,第二个字段是从另一个表中获取的,如果其他表有 10 条记录,则向用户显示 10 个新字段。我的问题是如何将这种数据插入表中。 我得到这
我一直在努力控制导入和导出,这样我就可以精简我的 JS 应用程序。我试过合并这些 Mozilla和 this Stack Overflow examples没有任何运气。 It looks like
我的数据库中的一个字段中包含以下文本: [quote:5a7b87febe="mr smith"]This is some text. This is more text on another lin
我正在使用 cling UPnP android 中的框架连接到支持 UPnP 的设备。我成功地创建了一个设备并浏览了网络中的可用设备。但对于三星电视在网络框架内没有任何反应。在这里我添加了 Rend
我正在制作一个问答网站,类似于此网站和 Yahoo answers。我有 3 个表 - smf_members、qa_questions 和 qa_answers。 在此查询中,我想从 qa_ques
阅读后this question - 它还提供了文档链接,我仍然对文档有疑问。 MDN:Date.parse A string representing an RFC2822 or ISO 8601
我有一个父实体客户端。该客户可以访问该网站并创建约会。这意味着约会是在客户反对的其他时间创建的。 我的问题是:如何将子对象添加到已持久化的父对象中?如果调用下面示例中的函数 addData1(),则会
我正在尝试创建气泡,重复几次后我的浏览器卡住了。这是我的代码。有人请帮助....我如何在不提出许多请求的情况下完成它。 看起来我的帖子主要是代码,但我为这个 Stackoverflow 添加了足够的细
我被这个 linq 查询困住了,我需要做的就是优化最后的价格计算,因为我得到了大约 1000 篇文章,而且销量很大,所以它变得很慢...... var result = from article in
我有一列用于对象创建 的时间,一列用于对象更新 的时间。当我创建并保留新对象时,我从 MySQL 收到错误: updated cannot be null. 我没有为它设置任何值,因为我希望 upda
我以前使用 git 没有任何问题,但突然间我无法推送 或克隆 任何东西。当我使用这个命令时,没有任何反应,甚至没有错误,所以我必须按 ctrl + c 或关闭 git 窗口。 我使用这个简单的命令来推
我似乎不知道下一步该做什么。我的目标是使用图像包中的 SubImage 函数从原始图像创建一个包含所有子图像的数组。我能够在 imageSplit() 函数中分割图像并通过 channel 传递给 i
我有一个 STM32L-Discovery 板,它有一个 STM32L152R8 微处理器。我很难让基本的事情发挥作用。 我看过ST给出的例子(电流消耗触摸传感器和温度传感器),我认为它们不太用户友好
这是一个散列,其中mysql列与散列的键相关,值与散列的值相关 {:jobID=>"1", :checkoutArtificateFolder=>"/cmf/new/build/Artifacts/
我有两个实体 @Entity @Table(name="parent") public class Parent { @Id String uuid; @ElementCollection
我是一名优秀的程序员,十分优秀!