gpt4 book ai didi

mysql - Perl & MySQL - 如何从表中的列中获取前 100 个最常用字段(包含数字)?

转载 作者:行者123 更新时间:2023-11-29 09:10:02 25 4
gpt4 key购买 nike

我有一个大约有 100,000 行的表。

我正在尝试将列中最常用的“type_num”打印到屏幕上。

因此,如果 2362 在 type_num 列中出现 1000 次(这是最常用的类型),并且 1234 使用了 987 次,依此类推,我会得到最常用频率的 desc 列表 type_num 的。

运气不好。这是我的新手尝试:

 my $mostused = DBI->connect("$thedb","$user","$password") or die "Connection Error: $DBI::errstr\n";

my $getfreq = $mostused->prepare(qq{SELECT `type_num` count(*) FROM `productstable` GROUP BY `type_num` ORDER BY count(*) DESC LIMIT 10}); ##just tested with 10

$getfreq->execute() or die "Connection Error: $DBI::errstr\n";

while(my ($type_num) = $getfreq->fetchrow_array()) {
print qq~$type_num<br />~;
}

$getfreq->finish(); #not sure if correct
$mostused->disconnect; #not sure if correct

Connection Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'count(*) FROM `productstable` GROUP BY `type_id` ORDER BY count(*) DESC LIMIT 10' at line 1

type_num 是 1 到 5 位数字。 (使用 DBI 和严格,但此示例已清理。)我尝试了在这里搜索时发现的几种变体和示例,但是我做错了。请帮忙。

最佳答案

改变

SELECT `type_num` count(*) 
FROM `productstable` GROUP BY `type_num`
ORDER BY count(*) DESC LIMIT 100

SELECT `type_num`, count(*) as cnt 
FROM `productstable` GROUP BY `type_num`
ORDER BY cnt DESC LIMIT 100

type_num + 别名后的逗号用于 count(*)ORDER BY 中重用。

关于mysql - Perl & MySQL - 如何从表中的列中获取前 100 个最常用字段(包含数字)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com