Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据在MySQL中有联系的百分比颁发奖品_Mysql - Fatal编程技术网

根据在MySQL中有联系的百分比颁发奖品

根据在MySQL中有联系的百分比颁发奖品,mysql,Mysql,我试图编写一些sql语句,根据一个位置分配一个值,每个位置都会得到一个总数字变量的某个百分比。可能存在位置关系。若存在平局,例如第四位有一个三方平局,则所有三个条目都会收到第三、第四和第五位合计的相等百分比。所以我需要计算这些结中每个位置的值,然后平均分割。然后,下一个位置将获得第6位,并重复此操作,直到到达最后一个位置 我已经有了一个排名函数,我只需要整理一下赋值。总分布有一个固定的数量,我有一个表存储每个位置的所有值。我该如何用pro语法实现这一点,最好是结合php和mysql。非常感谢您的

我试图编写一些sql语句,根据一个位置分配一个值,每个位置都会得到一个总数字变量的某个百分比。可能存在位置关系。若存在平局,例如第四位有一个三方平局,则所有三个条目都会收到第三、第四和第五位合计的相等百分比。所以我需要计算这些结中每个位置的值,然后平均分割。然后,下一个位置将获得第6位,并重复此操作,直到到达最后一个位置


我已经有了一个排名函数,我只需要整理一下赋值。总分布有一个固定的数量,我有一个表存储每个位置的所有值。我该如何用pro语法实现这一点,最好是结合php和mysql。非常感谢您的帮助。

mysql不提供窗口功能,所以这会很麻烦

CREATE TABLE scores (score real);
CREATE TABLE prizes (prize real); /* in any order but assumed distinct, minor changes otherwise */

CREATE VIEW ranked_scores AS
SELECT s.score, 
    1+COUNT(s2.score > s.score) AS best_place, 
    -1+COUNT(s2.score=s.score) AS n_tied_with
FROM score s JOIN score s2 ON s2.score>=s.score;

/* if prizes can be the same we need something more like the view above */
CREATE VIEW ranked_prizes AS
SELECT p.prize, COUNT(p2.prize) AS prize_rank
FROM prize p JOIN prize p2 ON p.prize<=p2.prize;

/* there are more efficient ways of getting those ranks except I don't know
 * MySQL syntax for getting a pseudo-table 1..n, and windowing functions
 * are not available IFAIK.*/

SELECT score, avg(prize) FROM ranked_scores JOIN ranked_prizes
ON prize_rank between best_place and best_place+n_tied_with;

你能把所有关于奖品和奖金的东西都抽象出来吗?我们不知道这在您的应用程序中意味着什么,这可能与手头的问题无关。它真的必须在SQL中吗?对于SQL来说,这似乎相当复杂,但几乎可以用任何语言编写。非常感谢,到目前为止,我已经重新编写了一点,希望能更好。我还将语言要求改为偏好,但不是要求。