加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL Query:在一个很是复杂的表上钩较一再值

发布时间:2021-03-22 15:53:28 所属栏目:编程 来源:网络整理
导读:我有这个MySQL表: CREATE TABLE `triple` ( `id_one` int(11) NOT NULL,`id_two` int(11) NOT NULL,`id_three` int(11) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 它共有近1000万行.中间列中的ID(“id_two”)可以在差异的

我有这个MySQL表:

CREATE TABLE `triple` (
  `id_one` int(11) NOT NULL,`id_two` int(11) NOT NULL,`id_three` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

它共有近1000万行.中间列中的ID(“id_two”)可以在差异的行中呈现差异的时刻.

简短示例:

id_one    id_two    id_three
1         2         3
2         2         3
3         2         1
68        98        1
1         4         3
2         4         4
4         5         33
6         5         3
90        5         3
34        5         83
9         3         98

此刻我想计较差异的id(“id_two”),就是在这个例子中:

id_two     count
2     ->  3
98    ->  1
4     ->  2
5     ->  4
3     ->  1

怎样有用地实现这一方针? (这是一次性事变……)这是第一件事.我必要做的第二件事是:要像上面一样计较,然后只选择那些有更大都量的ID,那么就说100.

很是感激您的辅佐!

密切的问候
Aufwind 最佳谜底 完成此使命的根基呼吁是这样的:

SELECT id_two,count(*) FROM triple GROUP BY id_two;

假如你想……你可以将它存储在姑且表中

CREATE TEMPORARY TABLE xxx SELECT id_two,count(*) AS c FROM …
SELECT * FROM xxx WHERE c > 100;

…或在外部查询中行使功效…

SELECT * FROM (SELECT id_two,count(*) AS c FROM triple GROUP BY id_two) t WHERE c > 100;

…或行使HAVING条款(如Marc在评述中所提议的):

SELECT id_two,count(*) AS c FROM triple GROUP BY id_two HAVING c > 100;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读