Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合两个sqldf语句_Sql_Sqlite_Subquery_Sqldf - Fatal编程技术网

组合两个sqldf语句

组合两个sqldf语句,sql,sqlite,subquery,sqldf,Sql,Sqlite,Subquery,Sqldf,我已经试了一整天了。有人能帮我把下面的问题组合起来吗。我在下面得到了期望的结果,但我明白这应该在一个完成 moo<-sqldf('SELECT id, count(id) AS idcount FROM MyData WHERE id IS not null GROUP BY id') sqldf("SELECT id, idcount FROM moo WHERE idcount = (SELECT min(idcount

我已经试了一整天了。有人能帮我把下面的问题组合起来吗。我在下面得到了期望的结果,但我明白这应该在一个完成

moo<-sqldf('SELECT id, count(id) AS idcount 
           FROM MyData WHERE id IS not null 
           GROUP BY id')
sqldf("SELECT id, idcount  FROM moo 
       WHERE idcount = (SELECT min(idcount) FROM moo)") 

moo答案将取决于接收SQL的数据库,如果没有
with
,则必须重复“moo”查询

在代码中这样做可能比在SQL中更好

如果dbms不支持,则:


答案将取决于接收SQL的数据库,如果不使用
,则必须重复“moo”查询

在代码中这样做可能比在SQL中更好

如果dbms不支持,则:


“sql”是一种语言,但每个数据库供应商的实现方式不同,因此在询问与sql相关的问题时,始终包括它是什么dbmsfor@Used_By_Already由于代码在R中的sqldf语句中有默认设置,因此它应该是SQLite dbmsOK,请参见“sql”是一种语言,但每个db供应商的实现方式不同,因此,在询问与sql相关的问题时,一定要包括它是什么dbmsfor@Used_By_Already因为代码在R中的sqldf语句中有默认设置,所以它应该是一个SQLite dbmsOK,请参见WITH moo AS”(“这个括号没有关闭,但代码很完美。格雷西亚斯!抱歉,刚刚修复了这个问题。感谢您选择它。干杯。好的,就像min一样(idcount)我还需要一个max(idcount),是否可以将其包含在这个查询中。是的,我已经编辑了min和max的答案,基本上只是where子句中的一个OR条件,它非常漂亮这个括号没有关闭,但是代码很完美。格雷西亚斯!抱歉,刚刚修复了。谢谢你拿起它。干杯。好的,就像min(idcount)一样,我需要一个max(idcount)当然,我已经编辑了min和max的答案,基本上只是where子句中的一个OR条件,非常漂亮。
  SELECT id, idcount  
  FROM (
       SELECT id, count(id) AS idcount 
       FROM MyData WHERE id IS NOT NULL 
       GROUP BY id 
       ) moo 
  WHERE idcount = (
    SELECT min(idcount) 
    FROM (
       SELECT id, count(id) AS idcount 
       FROM MyData WHERE id IS NOT NULL 
       GROUP BY id 
       ) 
  OR idcount = (
    SELECT max(idcount) 
    FROM (
       SELECT id, count(id) AS idcount 
       FROM MyData WHERE id IS NOT NULL 
       GROUP BY id 
       ) 
  WITH moo AS (  
  SELECT id, idcount  
  FROM (
       SELECT id, count(id) AS idcount 
       FROM MyData WHERE id IS NOT NULL 
       GROUP BY id 
       ) 
    )
  SELECT id, idcount  
  FROM moo
  WHERE idcount = (
    SELECT min(idcount) 
    FROM moo)
  OR idcount = (
    SELECT max(idcount) 
    FROM moo)