我正在使用python访问一个oracleexadata数据库,这个数据库非常庞大。这张table的文件很差,我需要了解一些奇怪的情况。在r/python世界中,我运行了以下查询:
query = ("""
SELECT COUNT(counter) as freq, counter
FROM (
SELECT COUNT(*) as counter
FROM schema.table
WHERE x = 1 AND y = 1
GROUP BY a,b )
GROUP BY counter""")
with cx_Oralce.connct(dsn=tsn, encoding = "UTF-8") as con:
df = pd.read_sql(con=con, query=sql)
这本质上是计算给定(a,b)对的观测频率。我之前说他们都是1(他们不是)。所以我想看看驱动这个的观察结果:
query = ("""
SELECT *
FROM schema.table
WHERE x = 1 and y = 1
AND (for each (a,b) there is more than one record)""")
我正在努力将其转换为正确的oraclesql。
在r( dplyr
)这将是 group_by
以及 mutate
(代替 summarise
)在python中 pandas
这可以通过 transform
.
我是sql新手,可能会使用不正确的术语。我很感激被纠正。
1条答案
按热度按时间ndh0cuux1#
可以使用窗口函数: