【发布时间】:2018-05-15 19:03:15
【问题描述】:
我需要在我的 postgresql 数据库上的单个 SQL 查询中返回多个值。到目前为止,这是我的查询:
SELECT AVG("percent"), MIN("percent"), MAX("percent"), AVG("profit"), MIN("profit"), MAX("profit")
FROM public.log_analyticss
WHERE "buyPlatform" = 'platA' AND
"date" >= '1526356073.6126819'
数据
date sellPlatform profit percent
---------- ------------ ---------- ----------
1526356073.61 platA 0 10.1
1526356073.62 platA 22 11
1526356073.63 platA 3 7
1526356073.64 platA 1 8
1526356073.65 platA 11 9
1526356073.66 platA 12 10
1526356073.67 platA 13 15
想要的结果
date sellPlatform profit percent
---------- ------------ ---------- ----------
1526356073.61 platA 0 10.1 //MIN Profit
1526356073.62 platA 22 11 //MAX Profit
1526356073.63 platA 3 7 //MIN Perc
1526356073.67 platA 13 15 //MAX Perc
//然后不知何故,我希望它也返回 AVG,如果这是可能的话。否则,我不介意运行另一个查询来做到这一点。
问题是我不只是想要 MIN 和 MAX 值。我想要从中获取 MIN 和 MAX 值的整行数据。
我知道我要求的是 AVG 和 MIN/MAX 值,它将以两种不同的格式返回数据。我知道这可能是不可能的。但是任何关于如何最有效地做到这一点的帮助都会非常有帮助。
现在我只是将整个数据集拉入我的代码并计算我的代码中的平均值、最小值和最大值,我知道这是否非常糟糕并且非常慢。该表有大约 800 万行,我正在抓取的数据集大约有 9000 行,所以我现在这样做的方式非常慢。
【问题讨论】:
-
发布样本数据的预期结果
-
mix 的结果行应该不同于 max .. 你想要这些结果吗? .. 显示适当的数据样本和预期结果
-
@RadimBača 我刚刚添加了一个示例数据集和结果
标签: php sql database postgresql