草庐IT

php - 统计某列出现的次数

coder 2023-10-24 原文

<分区>

所以如果我的标题有点令人困惑,我相信它是。顺便说一句,我正在为我的 sql 使用 medoo API,所以这只是一个小信息,只是为了让您不会被以下示例搞糊涂。

示例表

+----+------------+----------------+-------------+
| id | playerName | infractionType | infractedBy |
+----+------------+----------------+-------------+
|  1 | Alpha      | ET1            | Admin       |
|  2 | Alpha      | ET1            | Admin       |
|  3 | Alpha      | ET1            | Admin       |
|  4 | Delta      | ET1            | Admin       |
|  5 | Echo       | ET1            | Admin       |
|  6 | Echo       | ET1            | Admin       |
|  7 | Delta      | ET1            | Admin       |
|  8 | Alpha      | ET1            | Admin       |
+----+------------+----------------+-------------+

好的,让我们回顾一下基础知识。如果您执行这样的 foreach 循环:

foreach ($medoo->query("SELECT * FROM table1) as $entry) {
    echo $entry['playerName'];
}

所以你应该知道这将打印出所有的玩家名字。现在我想要的是打印出 playerName 的出现并将其回显。因此,对于非有序打印,代码将位于以下位置:

foreach ($medoo->query("SELECT DISTINCT playerName FROM table1) as $entry) {
    echo $entry['playerName'];
    echo $medoo->count("infractions", ["playerName" => $entry['playerName']);
}

然而,正如“这不是订购的”所述,我想要订购它,但我不知道如何订购。我在谷歌上到处都看到了“count()”sql 命令,但据我所知,它对我来说基本上没用。

我想知道的

  • 是否有满足我需求的 SQL 语句?如果是,那是什么。
  • 如果 SQL STATEMENT 不可行,那么是否可以使用 php 创建一个排序? (我个人是这么认为的)。


当前代码

foreach ($GoldenData->query("SELECT DISTINCT playerName FROM infractions") as $player) {
foreach ($GoldenData->query("SELECT COUNT(playerName) AS playerName FROM infractions WHERE playerName = '" . $player['playerName'] ."' ORDER BY COUNT(playerName) DESC") as $infracted) {
echo "<tr>";
echo "<td>";
echo $player['playerName'];
echo "</td>";
echo "<td>";
echo $infracted['playerName'];
echo "</td>";
echo "<tr>";
}   
}

我想要解释的内容

This is also in the comments but I'm just adding it here so other people could see it better.

所以这个想法基本上是按总违规次数排序,然后按降序(从多到少)排序。现在的问题是我没有我不想添加的“totalInfractions”列,除非没有该列没有其他方法可以做到这一点。所以问题是是否可以在不添加“totalInfractions”列的情况下执行此操作,或者是否有其他方法可以通过其他 SQL 语句或 PHP 函数来执行此操作。


如果您不理解某些内容,请告诉我,我会尽力解决。我确实明白我的要求有点令人困惑。

有关php - 统计某列出现的次数的更多相关文章

  1. ruby - 获取数组中值的最大连续出现次数 - 2

    下面有没有更优雅的方法来实现这个:输入:array=[1,1,1,0,0,1,1,1,1,0]输出:4我的算法:streak=0max_streak=0arr.eachdo|n|ifn==1streak+=1elsemax_streak=streakifstreak>max_streakstreak=0endendputsmax_streak 最佳答案 类似于w0lf'sanswer,但通过从chunk返回nil来跳过元素:array.chunk{|x|x==1||nil}.map{|_,x|x.size}.max

  2. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  3. ruby - 如何使用每个迭代器获取数组索引或迭代次数? - 2

    我正在用ruby​​遍历一个数组。有没有一种简单的方法可以在不返回for循环的情况下获取迭代次数或数组索引? 最佳答案 啊,知道了。each_with_index哇!编辑:糟糕! 关于ruby-如何使用每个迭代器获取数组索引或迭代次数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/706115/

  4. ruby - 如何获取我的 Sinatra 应用程序的代码覆盖率统计信息? - 2

    我编写了一个Sinatra应用程序(网站),我想收集网站代码的代码覆盖率信息。我是Ruby的新手,但Google告诉我rcov是一个很好的代码覆盖工具。不幸的是,我在网上可以找到的所有信息只显示了如何获取有关测试用例的代码覆盖率信息-我想要有关我的站点本身的代码覆盖率信息。我想要分析的特定站点文件位于“sdk”和“sdk/vendor”目录中,因此我通常使用“rubysite.rb”运行我的站点的地方我改为尝试以下操作:rcov-Isdk-Isdk/vendorsite.rb它显示了Sinatra启动文本,但随后立即退出,而不是像我的Sinatra应用程序通常那样等待网络请求。有人能告

  5. ruby - 为什么 inspect for the subclasses of built-in classes 中没有列出实例变量? - 2

    当我对内置类进行子类化时,为什么inspect中的行为会发生变化。但是当我子类化一个自定义的时没有看到。classMainErrorendclassAnotherTestErrort=TestError.newputst.inspect#output:# 最佳答案 因为很多(大多数?全部?)内置类是用C语言编写的,并且覆盖#inspect。例如,Exception(StandardError的父类(superclass))定义#inspect如下:exc_inspect(VALUEexc){VALUEstr,klass;klass=

  6. ruby-on-rails - 收集 Rails 应用程序使用统计信息的最佳方式 - 2

    我有一个Rails应用程序,用户可以在其中设置他们的域并在其中发布内容。我需要收集公共(public)流量统计信息,例如网页浏览量等。此功能的一个很好的例子是我作为客户可以看到的flickr使用统计信息。问题是收集使用信息的最佳方式是什么。应该通过解析日志文件来完成还是应该在运行时收集并存储在数据库中?是否有任何工具或Rails插件已经提供了此功能?此解决方案应该可以很好地扩展,即使每月有数千个域和数百万次网页浏览。 最佳答案 GoogleAnalytics可能是您最好的选择... 关于

  7. ruby - 使用 gsub 时如何限制替换次数? - 2

    在Ruby中如何限制String#gsub的替换次数?在PHP中,这可以通过preg_replace轻松完成,它接受一个参数来限制替换,但我不知道如何在Ruby中做到这一点。 最佳答案 您可以在gsub循环中创建一个计数器并递减它。str='aaaaaaaaaa'count=5pstr.gsub(/a/){ifcount.zero?then$&elsecount-=1;'x'end}#=>"xxxxxaaaaa" 关于ruby-使用gsub时如何限制替换次数?,我们在StackOverf

  8. ruby - 计算两个字母一起出现的次数 - 2

    我正在尝试编写一个Ruby程序来计算两个字母同时出现的次数。这是我正在阅读的文件中写的内容:holachau这就是我想要得到的:ho;ol;la;ch;ha;au;1;1;1;1;1;1;我无法让它正常工作。到目前为止,这是我的代码:file=File.read(gets.chomp)todo=file.scan(/[a-z][a-z]/).each_with_object(Hash.new(0)){|a,b|b[a]+=1}keys=''values=''todo.each_key{|key|keys+=key+';'}todo.each_value{|value|values+=v

  9. ruby - 如何在 Ruby 中列出有效的 Iconv 编码? - 2

    如何在windows7下获取Ruby1.9.1中的有效Iconv编码列表? 最佳答案 也许这会有所帮助:putsEncoding.listputsEncoding.aliases它返回一个加载的编码列表,以及一个编码别名的散列:ASCII-8BITUTF-8US-ASCIIBig5CP949Emacs-MuleEUC-JPEUC-KREUC-TW...{"BINARY"=>"ASCII-8BIT","CP437"=>"IBM437","CP737"=>"IBM737","CP775"=>"IBM775","IBM850"=>"CP8

  10. ruby-on-rails - Rails 还是 Sinatra? PHP程序员入门学习哪个好? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我使用PHP的时间太长了,对它感到厌倦了。我也想学习一门新语言。我一直在使用Ruby并且喜欢它。我必须在Rails和Sinatra之间做出选择,那么您会推荐哪一个?Sinatra真的不能用来构建复杂的应用程序,它只能用于简单的应用程序吗?

随机推荐