统计时,相同的数据只算一条数据,怎么写sql

哎呀,你提到的那些SQL语句在我为一家电商公司做用户分析的时候用得不少。

我记得那一年,2 01 9 年的上海,他们数据库中的用户表完全混乱了。
由于系统错误,同一用户用不同的ID进行了数十次注册,但姓名、手机号码等关键信息是相同的。
我将使用你提到的第一种方法来过滤掉重复项并找到每组中最大的ID。
具体语句 select from table where id in (select max(id) from table array by field1 , field2 ...)。
过了几分钟才出来,我的电脑死机了。
但结果是正确的,我终于可以继续分析了。

后来,更头疼了。
有一次,一位老板坚持要我看看每个人参加了某个活动多少次。
从数据中发现,同一个人的ID不同,但活动时间和参与状态相同。
我使用从表中选择不同的 id、字段 1 、字段 2 首先删除重复项,然后对它们进行计数。
这个声明速度比较快,几分钟就出来了。

再举个例子,他们想知道每个用户平均花多少钱。
我只是使用 select field 1 , field 2 , avg (field 3 ) from table group by field 1 , field 2 ...这也是常用的并且工作速度很快。
老板很高兴。

对了,还有一个时间来查找每个用户购买的最贵和最便宜的产品。
我只是从表组中按字段1 、字段2 选择字段1 、字段2 、最大值(字段3 )、最小值(字段4 )...,这也很有用。
但请注意,有时max和min用于同一个字段,可能需要单独列出,否则会报错。

但是如果你问我是否要统计每个用户购买的产品类型数量,我当时从未遇到过这种情况。
我以前没接触过这个,不敢乱说。
可能要用到count(单独字段),但是具体怎么写,还得回去查当年的文档。

总之,你说的SQL都是基本功。
关键是要多跑、多练习,知道什么时候用count,什么时候用average。
那时候我经常为了一道题跑一晚上,第二天才找到最优的写法。
但现在好多了,工具先进了,我可以跑得更快了。

sql查询出2条数据怎么只显示其中一条数据

上周试过这个。
它确实有效。

首先我们来说说减肥。
SELECT DISTINCT 是可靠的。
请正确使用。

例如,检查用户表。
有一个ID和一个名字。
我希望看到独立用户。
只需使用 DISTINCT 即可。

SQL的写法如下: SQL 选择一个唯一的名称 来自用户;
不保证重复。

我们来谈谈筛选。
WHERE 子句是个好东西。
请正确使用。

例如订单表排序。
我们希望看到购买“计算机”的客户。
看第一个。

SQL的写法如下: SQL 选择 按顺序 WHERE 产品名称 = '计算机' 限制 1 ;
您获得了第一个。

我也尝试了最大和最小的。
我们建议使用最大/最小。

例如,检查每种产品的最高价格。
SQL写法如下: SQL 选择产品名称,最大(订单金额) 按顺序 GROUP BY Product_name;
每个产品一条记录。
这是最大的金额。

你可以使用这个SQL:你到底想检查什么?说清楚。
让我们来看看。