小编Mar*_*ain的帖子

PostgreSQL查询按天计数/分组并显示没有数据的天数

我需要创建一个返回的PostgreSQL查询

  • 一天
  • 当天找到的物品数量

重要的是,即使当天没有找到任何物体,每一天都会出现在结果中.(之前已经讨论过这个问题,但是在我的具体案例中我无法解决问题.)

首先,我发现了一个sql查询来生成一系列天,我可以加入:

SELECT to_char(date_trunc('day', (current_date - offs)), 'YYYY-MM-DD')
AS date 
FROM generate_series(0, 365, 1) 
AS offs
Run Code Online (Sandbox Code Playgroud)

结果是:

    date    
------------
 2013-03-28
 2013-03-27
 2013-03-26
 2013-03-25
 ...
 2012-03-28
(366 rows)
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试将其加入名为"sharer_emailshare"的表中,该表具有"已创建"列:

Table 'public.sharer_emailshare'
column    |   type  
-------------------
id        | integer
created   | timestamp with time zone
message   | text
to        | character varying(75)
Run Code Online (Sandbox Code Playgroud)

这是GROUP BY我到目前为止最好的查询:

SELECT d.date, count(se.id) FROM (
    select to_char(date_trunc('day', (current_date - offs)), 'YYYY-MM-DD')
    AS date 
    FROM generate_series(0, 365, 1) 
    AS offs …
Run Code Online (Sandbox Code Playgroud)

sql postgresql join group-by

56
推荐指数
4
解决办法
4万
查看次数

Mongo - 如何聚合,过滤和包含匹配文档中的数据数组?

我有一个mongo支持的联系人数据库,我试图以一堆不同的方式找到重复的条目.

例如,如果2个联系人具有相同的电话号码,则会将其标记为可能的副本,同样适用于电子邮件等.

我在Debian上使用MongoDB 2.4.2和pyMongo以及MongoEngine.

到目前为止,我最接近的是查找并计算包含相同电话号码的记录:

dbh.person_document.aggregate([
    {'$unwind': '$phones'},
    {'$group': {'_id': '$phones', 'count': {'$sum': 1}}},
    {'$sort': SON([('count', -1), ('_id', -1)])}
])

# Results in 
{u'ok': 1.0,
 u'result': [{u'_id': {u'number': u'404-231-4444', u'showroom_id': 5}, u'count': 5},
             {u'_id': {u'number': u'205-265-6666', u'showroom_id': 5}, u'count': 5},
             {u'_id': {u'number': u'213-785-7777', u'showroom_id': 5}, u'count': 4},
             {u'_id': {u'number': u'334-821-9999', u'showroom_id': 5}, u'count': 3}
]}
Run Code Online (Sandbox Code Playgroud)

所以我可以得到重复的数字,但我不能为我的生活弄清楚如何返回实际包含这些项目的文档数组!

我想看到每个数字的这种返回数据:

# The ObjectIDs of the documents that contained the duplicate phone numbers
{u'_id': {u'number': u'404-231-4444', u'showroom_id': 5}, 
  u'ids': [ObjectId('51c67e322b2192121ec4d8f2'), ObjectId('51c67e312b2192121ec4d8f0')], 
  u'count': 2},
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

mongodb pymongo aggregation-framework

15
推荐指数
1
解决办法
2万
查看次数

用于键盘糖化的正则表达式

注册新帐户时,网络应用程序通常会询问"安全问题"的答案,即狗的名字等.

我想通过我们的数据库查找用户只是捣乱键盘而不是提供合法答案的实例 - 这是滥用/欺诈帐户的高指标.

"母亲的娘家姓?" lakdsjflkaj

关于我应该如何做这个的任何建议?

注意:我不仅仅在这些'安全问题答案'上使用正则表达式

'答案'可以是:

  1. 使用一些基本的sql正则表达式从db中选择

  2. 使用python正则表达式分析必要的次数

  3. 根据需要比较/修剪/得分

这是一个技术问题,而不是哲学问题 ;-)

谢谢!

python regex fraud-prevention

6
推荐指数
4
解决办法
1377
查看次数