SELECT-query中有通过-query的方法吗?(1)
我之所以问这个问题,是因为我不知道如何在单个SELECT-query集合中提交表t_1每一行的表t_2中的一些数据(请参阅UPDATE中的示例)。是的,我们确实可以GROUP BY一个UNIQUE INDEX,但是如果它不存在呢?或如何从t_1请求所有行,每个行与t_2中的特定相关行连接。因此,似乎在一个完美的世界中,我们必须能够通过一个适当的SQL-命令(R)循环一个表。也许,ANY(...)能帮上忙?
在这里,我尝试在表prop中列的所有值中找到t列中重复次数的最大计数。例如,我尝试在SQL query (Q1)中执行类似的Pandas‘
SELECT Max(C) FROM (SELECT Count(t_1.prop) AS C
FROM t AS t_1
WHERE t_1.prop = ANY (SELECT prop
FROM t AS t_2));但它只抛出错误:
每个派生表都必须有自己的别名。
我不明白这个错误。为什么会这样?(2)
是的,通过使用value_counts(...),我们可以更容易地实现Pandas的SELECT prop, COUNT() GROUP BY prop。但我想以一种“循环”的方式,保持“单一的非分组的SELECT-query模式”,理由是(R)。
这个子查询试图模仿Pandas‘t.value_counts(...) (Q2)
SELECT Count(t_1.prop) AS C FROM t AS t_1 WHERE t_1.prop = ANY(SELECT prop FROM t AS t_2)结果在6中,这只是t中的几行,结果是合乎逻辑的。ANY-clause只返回每一行的TRUE,一旦收集了所有行,COUNT(...)只返回收集的行数(即所有行)。
顺便说一句,在我看来,在“完全”之前的SELECT-query (Q1)中,应该返回这个6。
因此,主要的问题是如何在这样的查询中循环?有这样的机会吗?
更新
(2)问题的答案是这里,这要感谢Luuk。我刚刚给(.)分配了一个别名在SELECT Max(C) FROM (...) AS sq中的子查询,并得到了结果。当然,我得到了6,所以,(1)这个问题还不清楚。
我还尝试以(Q3)的方式进行迭代
SELECT (SELECT prop_2 FROM t_2 WHERE t_2.prop_1 = t_1.prop) AS isq FROM t_1; 在这里,t_2 prop_2连接到prop_1 (a.k.a )。( prop in t_1)同样多。因此,在整个过程中,我们的isq (内部选择查询)在t_1中每个prop值返回几行prop_2值。这就是为什么(Q3)抛出错误的原因:
子查询返回多于1行。再说一次,合乎逻辑。因此,我无法在一个非分组的
SELECT-query中创建一个循环。
发布于 2022-04-16 18:39:46
https://stackoverflow.com/questions/71894117
复制相似问题