- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果标题不太容易理解,我很抱歉,但我真的不知道还能怎么写。
无论如何,我有一个包含 3 列的数据库:索引、名称和值。
索引很好,索引,它会自动递增。 名称是一个随机字符串,值是一个可以在不同行中重复的随机数字。
我想要的是按照索引 1、2、3、4 等组织数据库,具体取决于 Value 列的值,从最高到最低。
这意味着我希望表格的第一行成为值列中具有最高值的行,依此类推。即使我在 Value 列上添加带有随机值的新行,我也希望它能够自动组织,并在必要时切换索引。这可以以任何方式实现吗?或者我可以以某种方式做到这一点吗?还是不可能?
最佳答案
create schema so_gibberish; -- creates database
use so_gibberish; -- use it
create table TopScores
(
id int auto_increment primary key, -- whatever this is, never really defined, playerId?
theName varchar(50) not null,
theValue bigint not null,
key (theValue)
);
-- truncate table TopScores;
-- create a stored procedure to insert random scores
-- creates 100 at a time when you call it
DELIMITER $$
drop procedure if exists insertRandomScores$$
create procedure insertRandomScores()
BEGIN
set @i=1;
WHILE @i<=100 DO
insert TopScores (theName,theValue) values ('xxx',1);
SELECT @lid:=LAST_INSERT_ID();
UPDATE TopScores SET theName=concat(
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@lid)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed:=round(rand(@seed)*4294967296))*36+1, 1),
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand(@seed)*36+1, 1)
), theValue=floor(rand()*384738)
WHERE id=@lid;
set @i=@i+1;
END WHILE;
END;
$$
DELIMITER ;
call insertRandomScores(); -- inserts 100 random names,scores. Call it 10 times for 1000
select count(*) from TopScores;
-- 1000 rows
-- the above random routine was lifted from a routine to generate better random values with seeding
-- not for performance
-- Instantaneous return all players ordered by rank, showing rank in column 1:
set @rownum=0;
select @rownum:=@rownum+1 'rank',id,theName,theValue from TopScores order by theValue desc;
-- Instantaneous return Top20 players ordered by rank, showing rank in column 1:
set @rownum=0;
select @rownum:=@rownum+1 'rank',id,theName,theValue from TopScores order by theValue desc limit 20;
+------+-----+----------+----------+
| rank | id | theName | theValue |
+------+-----+----------+----------+
| 1 | 781 | BUEYKGJJ | 384685 |
| 2 | 758 | FTHGJVZZ | 384223 |
| 3 | 999 | 389IL122 | 383682 |
| 4 | 622 | NRM7J9NN | 383255 |
| 5 | 538 | 5EJB53EE | 382572 |
| 6 | 226 | BQTD6A44 | 382501 |
| 7 | 334 | YRLCI5XX | 382397 |
| 8 | 404 | UTK09NN | 381152 |
| 9 | 885 | X6RQIP88 | 380678 |
| 10 | 292 | 71JZTMQQ | 380662 |
| 11 | 844 | FYF8ZXQQ | 380630 |
| 12 | 730 | 9O2KJYHH | 380361 |
| 13 | 770 | IHNWCL55 | 380287 |
| 14 | 861 | SL6GXH00 | 379624 |
| 15 | 399 | KE8CBRR | 379612 |
| 16 | 597 | 8XGKB4RR | 379537 |
| 17 | 131 | 05U7C88 | 378626 |
| 18 | 865 | T30SY44 | 378503 |
| 19 | 747 | MBPC7F44 | 378181 |
| 20 | 289 | FUODJHJJ | 377817 |
+------+-----+----------+----------+
-- The main difficulty is that the OP wants the rank in column 1, regardless of even the
-- soon to be mentioned 'getting just one user' aspect.
-- Order by is simple without any of this.
-- But later if you just want to do a search on player named "Catfish" and want his rank
-- for any particular statistic, it must have some sense of a rank # based on all users.
-- It is therefore necessary to run thru all the players even tho you want one. We run thru all players
-- to get rankings and house them in a report table if you will. So we create a report table.
-- In a complicated statistical model, a row could exist for every user with statistics on that row
-- for all the categories. Here we are saving just one statistic, theValue
-- Create a report table once or whenever. Periodically update it.
-- Note on EA Battlefield the update occurs after each game, (some games last an hour).
-- Stackoverflow updates its tag statistics near the end of the day.
-- so create, insert, update this table below whenever you want (cron, mysql create event, etc)
-- every minute if you want
-- Ok, so we are looking for just player 'Catfish'
update TopScores set theName='Catfish' where id=500;
-- note below the index on theName so the id above is irrelevant. no stacked deck here.
select count(*) from TopScores where theName='catfish'; -- sanity check
-- drop table playerRanks;
create table playerRanks
( rankId int not null,
id int not null, -- playerId ?
theName varchar(50) not null,
theValue int not null,
key (theName) -- this will be snappy
);
-- jam the data in there
set @rownum=0;
insert into playerRanks (rankId,id,theName,theValue)
select @rownum:=@rownum+1 'rank',id,theName,theValue from TopScores order by theValue desc;
-- Query OK, 1000 rows affected (0.14 sec)
-- now get Catfish's rank:
select * from playerRanks where theName='catfish';
+--------+-----+---------+----------+
| rankId | id | theName | theValue |
+--------+-----+---------+----------+
| 196 | 500 | Catfish | 310864 |
+--------+-----+---------+----------+
-- your results may vary
Creating an Event to run every five minutes for automation of this:
SET GLOBAL event_scheduler = ON; -- enable the scheduler.
SELECT @@event_scheduler; -- see if it is ON
CREATE EVENT evtUpdateStatistics
ON SCHEDULE
EVERY 300 SECOND -- run once every 5 minutes
DO
truncate table playerRanks;
set @rownum=0;
insert into playerRanks (rankId,id,theName,theValue)
select @rownum:=@rownum+1 'rank',id,theName,theValue from TopScores order by theValue desc;
其他需要考虑或修改的事情:
关于MySQL游戏排名统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31482483/
我目前正在学习数据挖掘,有以下问题。 机器学习和数据挖掘之间有什么关系? 我发现许多数据挖掘技术都与统计相关,而我“听说”数据挖掘与机器学习有很多关系。所以我的问题是:机器学习与统计学密切相关吗? 如
我有很多表的数据,例如: event_id player finish 1 a 1 1 b 2 1 c
我对 http_status_module 提供的统计数据感兴趣 特别是上游部分的统计数据。 http://nginx.org/en/docs/http/ngx_http_status_module.
除了 Cluster MBean 之外,是否有任何可以在 Akka (Java) 中启用的内置 JMX 公开监控/统计信息?我看过 Typesafe Console,但由于它需要许可证才能用于从多个节
我正在尝试在我的程序中使用“usage”统计信息来获取类似于 time 的数据工具。但是,我很确定我做错了什么。这些值似乎是正确的,但有时可能有点奇怪。我没有在网上找到好的资源。有人知道如何做得更好吗
我有一个带有统计表的 MySQL 数据库。我想以年历、月度的形式输出数据。对于没有点击率的几个月,我想花费一个“空”DIV。有两个ID。 $query = mysqli_query($db,"SELE
设置: 问题是经典概率问题的复杂形式: 70 colored balls are placed in an urn, 10 for each of the seven rainbow colors.
有哪些 Ruby gem 可以执行数据处理? 最佳答案 我知道有 3 种从 Ruby 访问 R 的方法: RinRuby RSRuby 通过 Rserve-Ruby-Client 预约 RinRuby
背景 图像领域内的一个国内会议快要召开了,要发各种邀请邮件,之后要录入、统计邮件回复(参会还是不参会等)。如此重要的任务,老师就托付给我了。ps: 统计回复邮件的时候,能知道谁参会或谁不参会。
我正在添加用户输入的几个数字并将它们添加到数组列表中。 到目前为止我的代码: package project143; import java.util.*; /** * @author -- */
正如标题所示,我需要做的是在各种 iO/Android/Windows 应用程序中跟踪各种用户事件 - 例如点击、滑动、在页面上花费的时间等。 这些应用程序基于响应式 HTML/CSS/JS,并具有简
我希望计算 HTML 表中每个唯一值的实例数,并在其自己的表中返回结果。该表是根据用户的文本输入生成的。例如,用户输入可能如下所示: Report 46 Bob Marley 4/20/2
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
我只是想知道是否可以计算 GitHub 上空存储库的总数。 如果不适合所有用户,可以为自己做吗? 编辑 我已经尝试过size:0搜索,但似乎返回了很多包含数据的存储库。采用 size:0..1 之类的
public class Scanner { private HtmlProcessor hp; private String baseUrl; private int ste
我正在使用 Mule ESB 3.4。我想开发一个自定义 Java 组件来计算流收到的请求数量。流程将例如像这样: http inbound-endpoint -> counter -> vm-out
我喜欢借助 GitHub API 来统计存储库中所有开放的拉取请求和问题。我发现 API 端点 /repos/:owner/:repo 结果包含 open_issues 属性。然而,这是问题和拉取请求
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试以编程方式获取搜索字词列表的 Google 新闻搜索结果计数(即有多少个结果),但仅限于过去 1 年。使用用户界面搜索时,结果计数仅出现在常规搜索中,但在“工具 > 最近 > 过去一年”下时
我是一名优秀的程序员,十分优秀!