Postgresql同一天至少销售2次
对不起,我的英语不好 我必须至少两次获得同一日期的所有记录,我的意思是我想知道谁的卖家在同一日期至少进行了两次销售 表A id Name Lastname Seller Date Item 23456 Roberto Rodriguez jvazquez 01/01/2013 auto 23423 Roberto Rodriguez jvazquez 01/01/2013 moto 5654 Julián Domínguez rfleita 05/02/2013 lancha 34534653 Romina Santaolaya jvazquez 02/02/2013 moto 346534 Romina Santaolaya rfleita 05/02/2013 auto id名称Lastname卖方日期项目 23456 Roberto Rodriguez jvazquez 01/01/2013汽车 23423 Roberto Rodriguez jvazquez 01/01/2013摩托 5654 Julián Domínguez rfleita 05/02/2013兰沙 34534653 Romina Santaolaya jvazquez 02/02/2013摩托 346534 Romina Santaolaya rfleita 05/02/2013汽车 结果 23456 Roberto Rodriguez jvazquez 01/01/2013 auto 23423 Roberto Rodriguez jvazquez 01/01/2013 moto 346534 Romina Santaolaya rfleita 05/02/2013 auto 5654 Julián Domínguez rfleita 05/02/2013 lancha 23456 Roberto Rodriguez jvazquez 01/01/2013汽车 23423 Roberto Rodriguez jvazquez 01/01/2013摩托 346534 Romina Santaolaya rfleita 05/02/2013汽车Postgresql同一天至少销售2次,sql,postgresql,Sql,Postgresql,对不起,我的英语不好 我必须至少两次获得同一日期的所有记录,我的意思是我想知道谁的卖家在同一日期至少进行了两次销售 表A id Name Lastname Seller Date Item 23456 Roberto Rodriguez jvazquez 01/01/2013 auto 23423 Roberto Rodriguez jvazquez 01/01/2013 moto 5654 Juliá
5654 Julián Domínguez rfleita 05/02/2013 lancha这应该会给你要求的结果:
SELECT *
FROM TableA
WHERE (Date, Seller) IN (
SELECT Date, Seller
FROM TableA
GROUP BY Date, Seller
HAVING COUNT(*) >= 2
)
这将为您提供要求的结果:
SELECT *
FROM TableA
WHERE (Date, Seller) IN (
SELECT Date, Seller
FROM TableA
GROUP BY Date, Seller
HAVING COUNT(*) >= 2
)
SQLFiddle示例:
如果你不需要额外的专栏,Joel的答案会更快
SQLFiddle示例:
如果您不需要额外的专栏,Joel的回答会更快。谢谢Joel,但我只需要在同一天内至少完成两次销售的人。我的意思是如果我在一段时间内销售4次,2013-06-01销售2次,2013-06-23销售1次,2013-06-25销售1次。我只想获得2013-06-01的销售数据,因为我在同一天销售了2笔销售。这应该会给你。你试过这个问题了吗?啊:我明白你的问题了。我想这个ID就是卖家ID。谢谢Joel,但我只需要在同一天内完成至少两次销售的人。我的意思是,如果我在一段时间内完成4次销售,2013-06-01年完成2次销售,2013-06-23年完成1次销售,2013-06-25年完成1次销售。我只想获得2013-06-01的销售数据,因为我在同一天销售了2笔销售。这应该会给你。你试过这个问题了吗?啊:我明白你的问题了。我想这个身份证就是卖家的身份证。没想透:)对。不仔细考虑:)
select id,
Name,
Lastname,
Seller,
Date,
Item
from (
select id,
Name,
Lastname,
Seller,
Date,
Item,
count(*) over (partition by date, seller) as cnt
from the_table
) t
where cnt >= 2;