-1
votes

Comment puis-je obtenir l'ID utilisateur qui est dans la plupart des lignes? Problème SQL

Je ne suis pas en mesure d'avancer et je ne trouve pas l'exemple approprié à l'aide de Google Search. Peut-être que je ne sais pas comment formuler ma recherche. Quoi qu'il en soit, c'est probablement simple et je ne sais tout simplement pas comment l'obtenir.

Comment puis-je obtenir l'ID utilisateur qui se trouve dans la plupart des lignes (l'utilisateur qui a soulevé la plupart des billets)?

 Entrez la description de l'image ici

Toute pointe ou lien vers une solution similaire serait vraiment utile.


3 commentaires

La plupart des gens ici veulent des données de table d'échantillons et le résultat attendu comme texte formaté, pas d'images.


Quel SGBD utilisez-vous?


dupliquer possible de Stackoverflow.com/questions/5159928/...


3 Réponses :


0
votes

Je ne suis pas sûr de ce que vous recherchez comme la question est très vague. Il vous aiderait à poster des échantillons de données avec des résultats attendus.

Mais, d'après ce que je comprends, trouvez l'ID utilisateur avec plus de billets soulevés. La requête ci-dessous vous donnerait le nombre d'utilisateurs avec la plupart sur le dessus. xxx


2 commentaires

Cette requête retournera simplement le comte de toutes les lignes.


Est-ce que cette indentation standard pour sélectionner - de - commander par?



0
votes

Voici mon emporter dessus. Compte de groupe par l'ID utilisateur, commander par des chefs descendants et ne prenez que le premier.

SELECT
userID,
COUNT(*)
FROM unknown_table_name
GROUP BY userID
ORDER BY 2 DESC
LIMIT 1


3 commentaires

Réponse spécifique du produit à une question sans SGBD spécifié. Au moins nous dire quel DBMS ceci est pour.


Bon point, limite ne serait pas pris en charge dans DB2, MSSQL, Oracle et Informix .


Ce serait encore mieux si vous avez répertorié la limite de soutien des produits. (Et ce groupe étrange par syntaxe de position ordinale ...)



0
votes

Cette requête doit faire l'astuce

SELECT t1.UserId, 
(
 SELECT COUNT(*) 
 FROM {table} t2 
 WHERE t2.UserId = t1.UserId
) counter 
FROM {table} t1 
 GROUP BY t1.UserId 
 ORDER BY counter 
DESC LIMIT 1


1 commentaires

Pas besoin de combiner une sous-requête corrélée au groupe par.