je la structure de tableau suivant:algorithme/requête pour obtenir des données statistiques de la table en utilisant php/mysql
CREATE TABLE test(
myID INT,
num1 INT,
num2 INT,
num3 INT,
PRIMARY KEY (myID)
)engine=innodb;
maintenant j'ai les données suivantes dans le tableau:
myID num1 num2 num3
1 15 27 98
2 27 38 66
3 15 27 77
maintenant j'ai besoin Pour exécuter 2 requêtes, la première requête s'exécute pour sélectionner tous les nombres et du côté PHP je compte le nombre de fois que chaque nombre est apparu (fréquences), la deuxième requête doit sélectionner le deuxième nombre le plus fréquent. Première requête:
$numfreq = PDO->prepare('
SELECT num1, num2, num3
FROM test
');
$numfreq->execute();
$allNums = array();
while ($row = $numfreq->fetch(PDO::FETCH_ASSOC)) {
$allNums[] = intval($row['num1']);
$allNums[] = intval($row['num2']);
$allNums[] = intval($row['num3']);
}
$numFrequencies = array_count_values($allNums);
arsort($numFrequencies);
cela renvoie correctement les fréquences de chaque numéro de la table. Maintenant, pour la deuxième partie
C'EST OÙ JE BESOIN D'AIDE:
Je reçois le nombre est apparu le plus souvent dans ce cas, son depuis sa fréquence est , je dois sélectionner que 1 numéro qui apparaît le plus à côté de signifie que je dois obtenir en quelque sorte le numéro car il apparaît deux fois à côté de .
Je peux probablement trouver l'algorithme sur le côté de PHP mais je me demandais si c'est possible de le faire en utilisant la requête?
de sorte que le résultat final serait:
most frequent number: 27
most frequent number 27 combined with 15 appears 2 times and is most frequent combination.
pouvez-vous expliquer la partie de requête interne avec des syndicats? – GGio