Information générale
Catégorie:
Codage, syntaxe et commandes
Titre:
Find person with longest name
Hi: Using foxpro, I have a table as follows:
ID Name
------ --------------------
1234 Fred
5678 Robin
2345 Bertha
2345 Bertha Smith
5678 Robin Jackson
I am trying to figure out an SQL query that will identify the people with the longest names, and as a side answer: the number of rows that contain
the same ID. Thank you, Steve
This gets me into the ballpark and I suspect that foxpro can do this:
SELECT r1.id, r1.name, LEN(ALLTRIM(r1.name)) as l, COUNT(r1.id) ;
FROM aan as r1 LEFT JOIN aan as r2 on r1.id = r2.id .and.;
LEN(ALLTRIM(r2.name)) < LEN(ALLTRIM(r1.name)) .or.;
LEN(ALLTRIM(r1.name)) > LEN(ALLTRIM(r2.name));
GROUP BY r1.name, r1.id
But I can't figure out what count(ID) is doing, how to return the number of rows per ID, or how to limit my results
to the rows that have the longest names?
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement