【问题标题】:SQL: Finding the rarest and most common value in a set of relationsSQL:在一组关系中查找最稀有和最常见的值
【发布时间】:2017-02-25 06:19:08
【问题描述】:

我有一个如下所示的架构:

pid     name

外观

pid     latitude    longitude   datetime

pid     major (1/0)     type

我正在尝试用 Python 编写一个函数,该函数可以为每个班级找到最稀有和最普通的人。我的函数将我的数据库名称 Collections 作为输入,我试图让它返回一个列表,其中包含每个不同的类类型的元组以及最常见和最不常见的人名的列。这是我目前所拥有的:

def rareCommon(){
    c.execute('SELECT COUNT(mid) AS Most Common FROM Appearance')
}

由于它的子查询性质,我在查询时遇到了很多麻烦。如果这里有人可以帮助我,将不胜感激。

【问题讨论】:

  • 这看起来一点也不像 python。是 JS 还是 python 还是一些奇怪的混合语言?还有,你的数据模型没有意义Class是什么模型,pid是什么,这些东西都需要解释一下,我们才能帮你查询。也许一些示例数据会有所帮助。
  • 我的数据模型只是一个关系表模式。 Person、appearance 和 class 都是表的名称,例如 pid 和 latitude 只是列名。 “defrareCommon()”部分是我一直在编写的 Python 中的一个函数。我正在使用 SQLlite。

标签: python sql sqlite relational-database schema


【解决方案1】:

只是在黑暗中刺伤......我同意@2ps 的评论 - 你对细节有点轻描淡写。

SQL 部分可能有点像

SELECT pc.pid,
       MIN(pc.p_count) rare,
       MAX(pc.p_count) most_common
  FROM (SELECT a.pid, 
               COUNT(*) p_count
          FROM appearance a
         GROUP BY a.pid) pc
 GROUP BY pid

【讨论】:

  • 我为 2ps 问题添加了一些信息。这会影响 SQL 吗?
猜你喜欢
  • 2015-06-20
  • 2012-08-27
  • 2014-08-08
  • 1970-01-01
  • 2014-08-04
  • 2013-09-05
  • 1970-01-01
  • 2020-10-28
相关资源
最近更新 更多