+-----------------+--------+-------+
| Date(yyyy-mm-dd)| name | price |
+-----------------+--------+-------+
| 2021-03-01 | APPLE | 15 |
| 2021-03-01 | Orange | 10 |
| 2021-03-01 | Banana | 5 |
| 2021-03-02 | Apple | 16 |
| 2021-03-02 | Orange | 9 |
| 2021-03-02 | Banana | 4 |
| 2021-03-03 | Apple | 17 |
| 2021-03-03 | Orange | 11 |
| 2021-03-03 | Banana | 5 |
+-----------------+--------+-------+
**Fruit Value**
我想知道那些每天都涨价的水果的名字。所以产量应该是“苹果”,因为苹果的价格在3月1日是15,3月2日是16,3月3日是17...............................................请任何人给我建议。
lag()
是这里要使用的窗口函数。
内部查询检测每组中当前行和前一行之间的价格变化是否为增加。它只是设置了一个标志:1
表示增加,0
表示不增加。
外部查询只是将标志求和,并将求和值与每个name
组中元素的总数进行比较。
SELECT name
FROM (
SELECT
*,
IF(
price > LAG(price, 1, 0) OVER (
PARTITION BY name
ORDER BY date
),
1,
0
) AS flag
FROM a
) r
GROUP BY name
HAVING SUM(flag) = COUNT(*)
dB<>小提琴
如果您有所有日期的所有水果的价格,那么您可以使用group_concat()
:
SELECT name
FROM tablename
GROUP BY name
HAVING COUNT(*) = COUNT(DISTINCT price) -- all prices are different
AND GROUP_CONCAT(price ORDER BY Date) = GROUP_CONCAT(price ORDER BY price)
-- prices ordered by date are in the same order as prices ordered ascending by price
请参阅演示。
当我像这样使用DataFrame groupby时: 我只会得到一个列为“age”和“count(id)”的DataFrame,但在df中,还有许多其他列,如“name”。 总之,我想得到MySQL中的结果, “按年龄从df组中选择姓名、年龄、计数(id)” 在Spark中使用groupby时该怎么办?
问题内容: 我使用PDO和MySQL,出于某种原因,当从数据库中获取int类型的值时,PDOStatement返回的是数字的字符串表示形式,而不是数字类型的值。如何防止这种情况发生? 我注意到有一个PDO类的属性:应该可以解决这个问题,但是在尝试修改它时,它抛出一个错误,指出该属性对MySQL驱动程序无效。 查询数据库时,获取字符串而不是数字是否正常? 问题答案: 我不认为可以在PHP 5.2中完
问题内容: 在MySQL中具有分区的RowNumber() 我想要基于id外键的以下输出 问题答案: 我几乎不明白你的意思。mysql中没有任何功能,分区与您的请求无关。 它的:
预期输出:获取组之间计数为max的结果行,如: 示例2:这个数据帧,我按分组: 对于上面的示例,我希望获取每个组中等于max的所有行,例如:
问题内容: 在日志中,我得到: “来自LAHETYS”发生了什么事?使用HQL或/和SQL处理此问题的最佳实践是什么? 另一个问题: 我得到一个例外: 所以我不能将对象投射到我的Lahetys对象上,很奇怪吗? 谢谢!佐美 问题答案: 您的HQL查询无效。LIMIT不是有效的HQL子句。要在Hibernate中做到这一点,只需
问题内容: 在按“列”分组之后,如何在pandas数据框中找到列的最大值的所有行? 示例1:以下dataFrame,我将其分组: 预期的输出:获取各组之间计数最大的结果行,例如: 示例2:此数据框,我将其分组为: 对于上面的示例,我想获取每个组中等于的所有行,例如: 问题答案: 要获取原始DF的索引,你可以执行以下操作: 请注意,如果每个组有多个最大值,则将全部返回。 更新资料 在OP所要求的情况