-2

好的,我有一个数据库,每次用户购买商品时,我都会在其中生成票证代码。有了这个代码,他们就有机会赢得价格

为了赢得价格,他们必须去登记表,在那里询问代码......这就是真正生成数据的地方。我询问姓名、邮件地址和其他不重要的东西

这部分工作正常且正常。但我需要创建一个新功能来检测最佳买家。因此,当他们输入代码参与时,我会询问他们的邮件,我注意到,他们实际上每次注册代码时都会输入相同的邮件。所以这是我认为选择我最好的客户的最佳方式,也是对促销最感兴趣的客户。

所以我认为最好是建立一个查询来搜索邮件行..里面的用户表,并寻找巧合,然后这个查询可以给我一个 DSC 顺序中最“重复”邮件的列表,

这是可能的,我可以建立这样的查询吗?如何?

好的,谢谢你的评论(为什么不赞成??)

结构是

身份证 | 姓名 | 姓氏 | 邮件 | 电话 | 邮政编码 | 出生|

抱歉,此时我只是想不出一个问题,这就是我问的原因。对不起,我是个傻瓜,

4

3 回答 3

2

只需按行计数并按电子邮件分组:

SELECT COUNT(*) AS top_buyers, mail FROM users GROUP BY mail ORDER BY top_buyers DESC
于 2013-05-13T04:50:42.087 回答
2

像这样的东西应该工作。

select email, count(*) as num_entries from emails group by email order by num_entries desc;
于 2013-05-13T04:51:25.483 回答
1

如何按某个元素在表中出现的次数排序

SELECT COUNT(*) AS top,mail,name lastname FROM users GROUP BY mail ORDER BY top DESC

这是因为聚合函数

数数

选择 group by 的各个元素中的行数(因此假设您在没有 group by 的情况下运行 count 它只会返回表中的行数)

通过...分组

按 group by 指定的列中的公共元素对行进行分组。

因此,在上述情况下,它将所有邮件分组在一起并计算每组中的行数。

于 2013-05-13T04:58:52.270 回答