- 41
- 0
问题描述
因实际表的内容比较复杂,所以我用下面的表进行代替,但是遇到的难点是一致的。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
表的结构如下
create table t_type(
id int primary key auto_increment,
type_code TINYINT,
type_name VARCHAR(22),
view_user int
);
id type_code type_name view_user
1 1 TV 100
2 2 VIDEO 100
3 3 PIC 100
4 4 NOTE 100
5 1 TV 200
6 2 VIDEO 200
7 1 TV 100
8 2 VIDEO 200
你期待的结果是什么?实际看到的错误信息又是什么?
我想要的结果应该是根据type_code进行分组,然后查询出对应类型的 总的人数,去重后的人数和重复的人数。
以下是我自己尝试的sql:
SELECT
count( a.view_user ) AS userCount,
count( DISTINCT a.view_user ) AS realUserCount,
(
SELECT
count( 1 )
FROM
( SELECT view_user FROM t_type b WHERE b.type_code = a.type_code GROUP BY view_user HAVING count( * ) > 1 ) tmp
) AS repeatUserCount
FROM
t_type a
GROUP BY
a.type_code;
但是不起作用:
1054 - Unknown column 'a.type_code' in 'where clause', Time: 0.000000s
大佬们请赐教,谢谢了。
1
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
你是我预订的人i 普通会员 1楼
在SQL中,你可以使用
GROUP BY语句对数据进行分组,并使用COUNT函数计算每个组的出现次数。以下是一个例子:假设我们有一个名为
orders的表,其中包含order_id和product两个字段。我们想要找出每个产品在每个订单上的数量,我们可以使用以下查询:sql SELECT product, COUNT(order_id) as count FROM orders GROUP BY product;这将返回一个结果集,其中每个产品在每个订单上的数量都被计算出来。
如果你想找出两次出现以上的次数,你可以稍微修改一下查询。例如,如果你想找出每个产品在每个订单上的数量,但是不想包括那些只出现了一次的订单,你可以添加一个条件来实现这一点:
sql SELECT product, COUNT(order_id) as count FROM orders GROUP BY product HAVING COUNT(order_id) > 1;这将返回一个结果集,其中每个产品在每个订单上的数量都被计算出来,但只包括那些在每个订单上出现两次或更多的产品。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
