尝试在MYSQL数据库中查找数组的中位数。
目前,我是这样抓取数据的:
$middleMonth = "SELECT Day, COUNT(Day) AS totalNumber FROM finalbaby GROUP BY Day ORDER BY COUNT(Day) DESC LIMIT 1, 300";
$middleResult = mysql_query($middleMonth);
然后我将其放入一个数组中,如下所示。
$names=array();
while($row = mysql_fetch_assoc($middleResult)) {
$names[
所以我想用mySQL得到一个数值列的中位数。 下面是我的代码: SELECT LAT_N FROM STATION
ORDER BY LAT_N
LIMIT SELECT FLOOR(COUNT(*)/2) FROM STATION,1 其中LAT_N是我想要检查的列名,STATION是表名。我得到了以下错误,但我不能理解哪个语法是错误的。 ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server vers
我有以下MySQL查询,它运行得很好:
select
count(*) as `# of Data points`,
name,
max((QNTY_Sell/QNTYDelivered)*1000) as `MAX Thousand Price`,
min((QNTY_Sell/QNTYDelivered)*1000) as `MIN Thousand Price`,
avg((QNTY_Sell/QNTYDelivered)*1000) as `MEAN Thousand Price`
from
table_name
where
我有一张列有499个正数N的表格,我想找出这些数字的中位数,下面是:
SELECT (ROUND(N,4)) FROM TABLE ORDER BY N LIMIT 1 OFFSET ((COUNT(N)-1)/2);
我得到以下错误:
第15行错误1064 (42000):您的SQL语法出现错误;请检查与MySQL服务器版本相对应的手册,以获得在第4行使用的正确语法“((计数(N)-1)/2)”
如果我将((COUNT(N)-1)/2)替换为249 (在表排序后中值为),这是可行的,因此我不能使用((COUNT(N)-1)/2)。为什么会这样呢?我该怎么做才能找到中位数呢?
谢谢
在MySQL中,如何获得某一列的中位数,在我的例子中是"liked_count",在多个表中聚合,并按另一列对它们进行分组?
为了确保我在这里讲得很清楚,我有多个表,列分别为" liked_count“和"creator_id",我希望获得所有表中每个创建者的中位数liked_count,而不是每个表的中位数。
我可以用AVG()得到平均值,但似乎没有中值函数。
select a.creator_id, avg(a.liked_count) as average
from (
select creator_id, liked_count from typ
我希望在MySQl中找到薪资值的中位数(考虑下半值的偶数)。表由一个
Table Structure
ID
Salary
由于没有rownum,我编写了以下代码在Mysql中生成rownum。
set @r = 0;
Select
rownum, id, Salary
from
(Select
@r:=@r + 1 as rownum, id, Salary
from
E
order by Salary asc) p
where
p.rownum = (Select
max(p.rownu
根据标题,我尝试计算派生字段的中位数:
SELECT
TIMESTAMPDIFF(DAY, T1.time1, T2.time2) as diff
FROM table1 T1 JOIN table2 T2 ON ...
WHERE ...
GROUP BY ...
计算平均值就像下面这样简单
SELECT
AVG(F.diff) as average
FROM (
//subquery above
) F;
但是,我还没有找到一种计算中位数的方法,因为大多数解决方案似乎都涉及将列的表连接到自身。要做到这一点,唯一的方法是键入子查询两次。这个子查询不是一个非常快的查询
我可以知道怎样才能找到x在R中y的中位数吗?Y是这里x的概率。例如,0.3是P(X=1),0.05是P(X=2)。我手工计算的中位数是3。我试过使用中位数( y ),但我只能得到0.25,这是数据集y的中位数。有没有什么方法可以用来组合x和y,以求出x的中位数?
x=1:5
y=c(0.3,0.05,0.25,0.25,0.15)
上下文:
我试图采取一系列的市场交易,并确定实际移动的金额,每一项目类型。这几乎是我在MySql上的第一次尝试,所以查询很难看,但是下面的内容几乎是有效的:
SELECT types.typename,
averages.type,
averages.price,
movement.sold,
( averages.price * movement.sold ) AS value
FROM (SELECT type,
Round(Avg(price)) AS price
FROM or