计算列的出现次数

直放站爬行器

因此,如果我的头衔有些混乱,我相信是这样。顺便说一下,我正在为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。现在,我想要的是打印出playerName的出现并将其回显。因此,对于无序打印,代码将位于以下几行:

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

无论如何,“我不想要”是我要订购的,但我不知道如何订购。我到处都在看google看到了'count()'sql命令,但就我所知它对我基本上没有用。

我想知道的

  • 是否有满足我需求的SQL STATEMENT?如果是这样,那是什么。
  • 如果使用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>";
}   
}

我想解释什么

这也在评论中,但我只是在这里添加它,以便其他人可以更好地看到它。

因此,这个想法基本上是按TOTAL INFRACTIONS的计数排序,然后按降序排序(从最大到最小)。现在的问题是,我没有我不想添加的“ totalInfractions”列,除非没有该列没有其他方法可以这样做。因此,问题是,是否有可能在不添加'totalInfractions'列的情况下完成此操作,或者是否还有其他方法可以通过其他SQL STATEMENTS或PHP函数来实现。


如果您不了解某些内容,请告诉我,我会尽力清除。我确实知道我要的东西有点混乱。

红胡子011010

如果我了解您要完成的工作...

我跑了这个查询:

SELECT COUNT(id), playerName from Example group by playerName;

输出是这样的:

+-----------+------------+

| count(id) | playername |

+-----------+------------+

|         4 | Alpha      |

|         2 | Delta      |

|         2 | Echo       |

+-----------+------------+

我们正在做的是对每个ID进行计数(因为每个条目代表一个违规,这等同于计算违规数),然后按playerName分组,以便我们为每个玩家获得总计。这接近您想要做的事吗?

对于复制/粘贴结果表格式不正确,我深表歉意,我不确定如何使它看起来更好。

如果将来添加更多的infractionType,则可能需要这样的代码:SELECT COUNT(id),玩家名称,示例GROUP BY infractionType,playername中的infractionType;

这将产生如下结果:

+-----------+------------+----------------+

| count(id) | playername | infractionType |

+-----------+------------+----------------+

|         3 | Alpha      | ET1            |

|         1 | Delta      | ET1            |

|         1 | Alpha      | ET2            |

|         1 | Delta      | ET2            |

|         2 | Echo       | ET2            |

+-----------+------------+----------------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算列中出现的次数?

来自分类Dev

计算ID在两列中出现的次数

来自分类Dev

计算Tableau列中Null的出现次数

来自分类Dev

用熊猫计算每列的出现次数

来自分类Dev

计算列猪中的单词出现次数

来自分类Dev

计算某些单词在列中出现的次数

来自分类Dev

计算跨列的DataFrame中的出现次数

来自分类Dev

TSQL计算列中的出现次数

来自分类Dev

SQL - 计算列中的出现次数

来自分类Dev

计算跨列文本出现的次数

来自分类Dev

计算列中条纹的出现次数

来自分类Dev

如何计算SQL中计算列的出现次数?

来自分类Dev

计算单词出现的次数

来自分类Dev

计算按钮出现的次数

来自分类Dev

计算键值的出现次数

来自分类Dev

计算字符的出现次数

来自分类Dev

计算元素在data.frame列中出现的次数

来自分类Dev

计算整数出现在列中的次数

来自分类Dev

如何计算SQL Server列中值的最连续出现次数

来自分类Dev

添加一列,该列计算记录的出现次数

来自分类Dev

在两列中都计算某个值的所有出现次数

来自分类Dev

如何使用COUNT计算两列中的出现次数?

来自分类Dev

计算不同列中2个值的出现次数

来自分类Dev

计算csv文件列中字符串的出现次数

来自分类Dev

计算每个选定列中字符串出现的次数

来自分类Dev

计算基于多列的数据框中的出现次数-R

来自分类Dev

计算数据帧列R中的出现次数

来自分类Dev

计算两个列案例的出现次数

来自分类Dev

SQL-计算所有列中的出现次数