2009-09-24 5 views
3

Comment puis-je sélectionner des données sans dupliquer la valeur "First Letter"? Ma table a une colonne nommée "title_raw" avec des données aménagent un suivi "A, B, C, ..." Je veux que mon affichage de données quelque chose comme çaSélectionner une requête sans dupliquer "First Letter" en sqlite

Select (title_raw no duplicate first letter) from SONGS 
+2

Pourriez-vous donner quelques détails sur les tables impliquées, les types de colonnes, etc.? Quels champs sélectionnez-vous réellement? – Dirk

+0

Je donne plus de détails – Dennie

+0

pouvez-vous donner un exemple de certaines valeurs de la colonne title_raw. Par exemple title_raw contient: 'aert', 'aaert', 'arr', 'tgd', 'uuu'; qu'est-ce que tu veux avoir? – manji

Répondre

9
SELECT DISTINCT substr(title_raw, 1, 1) FROM SONGS 
+0

Merci najmeddine! C'est ce que je veux! – Dennie

1
select substr(col, 0, 1) as Letter, count(primary_key) as Frequency 
from table 
group by Letter 

Je ne sais pas si vous peut utiliser l'alias de colonne 'dans le groupe avec SQLite. Cela vous donnera des premières lettres uniques. Utilisez ensuite que comme sous-requête pour:

select data 
from table 
where substr(data, 0, 1) IN (subquery) 

Cela devrait fonctionner

+0

Qu'est-ce qu'une "sous-requête"? Je ne comprends pas? – Dennie

+0

J'essaie votre requête mais je ne sais pas pourquoi ça marche juste avec des données numériques? – Dennie

+0

Essayez d'abord d'exécuter la première requête, voir si cela fonctionne. Vous devrez peut-être changer de groupe par lettre pour être groupe par substr (col, 0, 1) Une fois que cela fonctionne remplacer la sous-requête avec la première requête. Il récupère toutes les premières lettres uniques et sélectionne ensuite les lignes commençant par ces lettres. – Chris

Questions connexes