\documentclass[10pt]{article}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\graphicspath{ {./images/} }
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[version=4]{mhchem}
\usepackage{stmaryrd}
\usepackage{mathrsfs}
\usepackage{bbold}

\DeclareUnicodeCharacter{25C7}{\ifmmode\diamond\else{$\diamond$}\fi}

\begin{document}
\section*{Ccricome}
\section*{CONCOURS D'ADMISSION 2025}
\includegraphics[max width=\textwidth, alt={}, center]{64e3d0de-614b-4734-afec-1a521fb4902e-1_641_501_561_0}\\
\includegraphics[max width=\textwidth, alt={}, center]{64e3d0de-614b-4734-afec-1a521fb4902e-1_332_1022_639_571}

\section*{Mathématiques Appliquées}
Série ECG\\
Mardi 15 avril 2025 de 8 hOO à 12 h 00\\
Durée : 4 heures\\
Candidats bénéficiant de la mesure «Tiers-temps » :\\
8h00-13h20

\section*{L'énoncé comporte 5 pages.}
\section*{INSTRUCTIONS}
Tous les feuillets doivent être identifiables et numérotés par le candidat.\\
Aucun document n'est permis, aucun instrument de calcul n'est autorisé.\\
Conformément au règlement du concours, l'usage d'appareils communicants ou connectés est formellement interdit durant l'épreuve.\\
Les candidats sont invités à soigner la présentation de leur copie, à mettre en évidence les principaux résultats, à respecter les notations de l'énoncé et à donner des démonstrations complètes - mais brèves - de leurs affirmations.\\
Si, au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé, il le signale sur sa copie et poursuit sa composition en expliquant les raisons des initiatives qu'il est amené à prendre.\\
Ce document est la propriété d'ECRICOME, le candidat est autorisé à le conserver à l'issue de l'épreuve.\\
Le candidat dispose d'une annexe Python et SQL en pages 7 et 8.

Dans les questions faisant intervenir des instructions en langage Python, on prendra soin d'importer les bibliothèques nécessaires lors de leur première utilisation.\\
Pour traiter les questions d'informatique, les candidats sont invités à se référer aux annexes fournies en fin de sujet. Ils ne sont pas limités à l'utilisation des seules fonctions mentionnées dans ces annexes.

\section*{EXERCICE 1}
On considère la matrice \(A=\left(\begin{array}{ccc}1 & -2 & 0 \\ -2 & 0 & 2 \\ 0 & 2 & -1\end{array}\right)\).\\
On note \(0_{3}\) la matrice nulle de \(\mathscr{M}_{3}(\mathbb{R})\) et \(I_{3}\) la matrice identité de \(\mathscr{M}_{3}(\mathbb{R})\).\\
Pour toute matrice \(C\) de \(\mathscr{M}_{3}(\mathbb{R})\), on note \(E_{C}\) l'ensemble des matrices \(M\) de \(\mathscr{M}_{3}(\mathbb{R})\) telles que \(C M+M C=0_{3}\).

\begin{enumerate}
  \item Déterminer les ensembles \(E_{0_{3}}\) et \(E_{I_{3}}\).
  \item Montrer que, pour toute matrice \(C\) de \(\mathscr{M}_{3}(\mathbb{R})\), l'ensemble \(E_{C}\) est un sous-espace vectoriel de \(\mathscr{M}_{3}(\mathbb{R})\).
  \item Soit \(M\) une matrice de \(E_{A}\).
\end{enumerate}

Montrer que \({ }^{t} M\) appartient à \(E_{A}\).\\
4. (a) Justifier que \(A\) est diagonalisable.\\
(b) Soit \(\lambda\) un réel.

Montrer que si \(\lambda\) est valeur propre de \(A\) alors :

\[
\lambda^{3}-9 \lambda=0 .
\]

(c) Déterminer une matrice diagonale \(D\) de \(\mathscr{M}_{3}(\mathbb{R})\), dont les coefficients diagonaux sont classés dans l'ordre croissant, et une matrice inversible \(P\) de \(\mathscr{M}_{3}(\mathbb{R})\), dont les coefficients diagonaux sont tous égaux à 1 , telles que \(D=P^{-1} A P\).

Dans toute la suite de l'exercice, \(D\) et \(P\) désignent les matrices introduites à la question 4.(c).\\
5. Calculer \(P^{2}\).

En déduire une expression de \(P^{-1}\).\\
6. (a) Soit \(N=\left(\begin{array}{lll}a & b & c \\ d & e & f \\ g & h & i\end{array}\right)\) une matrice de \(\mathscr{M}_{3}(\mathbb{R})\).

Montrer que \(N\) appartient à \(E_{D}\) si et seulement si \(N=\left(\begin{array}{lll}0 & 0 & c \\ 0 & e & 0 \\ g & 0 & 0\end{array}\right)\).\\
(b) En déduire une base \(\mathscr{B}\) de l'espace vectoriel \(E_{D}\) et préciser la dimension de \(E_{D}\).\\
7. (a) Soit \(M \in \mathscr{M}_{3}(\mathbb{R})\). On pose \(N=P^{-1} M P\).

Montrer que \(M\) appartient à \(E_{A}\) si et seulement si \(N\) appartient à \(E_{D}\).\\
(b) En déduire une base de l'espace vectoriel \(E_{A}\) exprimée à l'aide de \(P\) et des matrices de \(\mathscr{B}\).\\
8. Déterminer l'ensemble des matrices \(M\) de \(\mathscr{M}_{3}(\mathbb{R})\) vérifiant : \((A+M)^{2}=A^{2}+M^{2}\).

On ne cherchera pas à expliciter les coefficients de \(M\).\\
9. Soit \(\varphi\) l'endomorphisme de \(\mathscr{M}_{3}(\mathbb{R})\) défini par : \(\forall M \in \mathscr{M}_{3}(\mathbb{R}), \varphi(M)=A M+M A\).

En utilisant certains résultats des questions précédentes, déterminer le rang de \(\varphi\).

\section*{EXERCICE 2}
\begin{enumerate}
  \item (a) Montrer que, pour tout entier naturel \(n\), l'intégrale \(\int_{0}^{+\infty} t^{n} \mathrm{e}^{-t} \mathrm{~d} t\) est convergente.
\end{enumerate}

On note pour tout entier naturel \(n, I_{n}=\int_{0}^{+\infty} t^{n} \mathrm{e}^{-t} \mathrm{~d} t\).\\
(b) Calculer \(I_{0}\) et \(I_{1}\).\\
2. Montrer que, pour tout réel \(x\) positif, l'intégrale \(\int_{0}^{+\infty} \frac{\mathrm{e}^{-t}}{1+x t} \mathrm{~d} t\) est convergente.

On considère la fonction \(F\) définie sur \([0,+\infty[\) par :

\[
\forall x \in\left[0,+\infty\left[, \quad F(x)=\int_{0}^{+\infty} \frac{\mathrm{e}^{-t}}{1+x t} \mathrm{~d} t\right.\right.
\]

\begin{enumerate}
  \setcounter{enumi}{2}
  \item Expliciter la valeur de \(F(0)\).
  \item Soient \(x\) et \(y\) deux réels positifs tels que \(x \leqslant y\).
\end{enumerate}

Montrer que \(F(y) \leqslant F(x)\).\\
Que peut-on en déduire sur la fonction \(F\) ?\\
5. (a) Pour tout réel \(x\) positif, calculer l'intégrale \(\int_{0}^{1} \frac{1}{1+x t} \mathrm{~d} t\).

On distinguera le cas \(x=0\) et le cas \(x>0\)\\
(b) Montrer que, pour tout réel \(x\) positif :

\[
0 \leqslant \int_{0}^{1} \frac{\mathrm{e}^{-t}}{1+x t} \mathrm{~d} t \leqslant \int_{0}^{1} \frac{1}{1+x t} \mathrm{~d} t
\]

(c) Montrer que, pour tout réel \(x\) strictement positif :

\[
0 \leqslant \int_{1}^{+\infty} \frac{\mathrm{e}^{-t}}{1+x t} \mathrm{~d} t \leqslant \frac{1}{x} \int_{1}^{+\infty} \mathrm{e}^{-t} \mathrm{~d} t .
\]

(d) À l'aide des questions précédentes, déterminer la limite de \(F(x)\) lorsque \(x\) tend vers \(+\infty\).\\
6. Soit \(x\) un réel positif. On admet que l'intégrale \(\int_{0}^{+\infty} \frac{t^{2} \mathrm{e}^{-t}}{1+x t} \mathrm{~d} t\) est convergente.\\
(a) Montrer que :

\[
F(x)-\int_{0}^{+\infty} \mathrm{e}^{-t}(1-x t) \mathrm{d} t=x^{2} \int_{0}^{+\infty} \frac{t^{2} \mathrm{e}^{-t}}{1+x t} \mathrm{~d} t
\]

(b) En déduire que :

\[
0 \leqslant F(x)-I_{0}+x I_{1} \leqslant x^{2} I_{2} .
\]

\begin{enumerate}
  \setcounter{enumi}{6}
  \item (a) En déduire que la fonction \(F\) admet le développement limité à l'ordre 1 suivant au voisinage de 0 :
\end{enumerate}

\[
F(x) \underset{x \rightarrow 0}{=} 1-x+o(x) .
\]

(b) Montrer que \(F\) est dérivable en 0 et déterminer \(F^{\prime}(0)\).\\
8. On admet que la fonction \(F\) est continue sur \([0,+\infty[\).

En tenant compte des propriétés démontrées dans cet exercice, tracer l'allure de la courbe représentative de \(F\). On fera figurer sa tangente au point d'abscisse 0 .

\section*{EXERCICE 3}
Toutes les variables aléatoires de cet exercice sont supposées définies sur le même espace probabilisé ( \(\Omega, \mathcal{A}, \mathbb{P}\) ).\\
Soit \(n\) un entier naturel non nul.\\
La population active d'un territoire est divisée en \(n\) catégories socioprofessionnelles, numérotées de 1 à \(n\).\\
Pour tout entier \(i\) compris entre 1 et \(n\), on note \(X_{i}\) la variable aléatoire égale au revenu mensuel, en milliers d'euros, d'un individu choisi au hasard avec équiprobabilité au sein de la catégorie socioprofessionnelle numéro \(i\). On suppose que la variable aléatoire \(X_{i}\) admet pour densité la fonction \(f_{i}\) définie sur \(\mathbb{R}\) par :

\[
\forall x \in \mathbb{R}, f_{i}(x)=\left\{\begin{array}{lll}
\frac{i}{x^{i+1}} & \text { si } & x \geqslant 1, \\
0 & \text { si } & x<1 .
\end{array}\right.
\]

On note \(F_{i}\) la fonction de répartition de \(X_{i}\).

\section*{Partie I.}
\begin{enumerate}
  \item Vérifier que, pour tout entier \(i\) compris entre 1 et \(n\), la fonction \(f_{i}\) est une densité de probabilité.
  \item (a) Déterminer les entiers naturels \(i\), compris entre 1 et \(n\), tels que \(X_{i}\) admet une espérance, et déterminer alors l'espérance de \(X_{i}\).\\
(b) En justifiant la réponse, classer les numéros de catégorie socioprofessionnelle dans l'ordre de leur revenu mensuel moyen, du moins élevé au plus élevé.\\
On ne considérera que les entiers i pour lesquels l'espérance de \(X_{i}\) est bien définie.
  \item Montrer que, pour tout entier \(i\) compris entre 1 et \(n\) et pour tout réel \(x\) :
\end{enumerate}

\[
F_{i}(x)=\left\{\begin{array}{lll}
1-\frac{1}{x^{i}} & \text { si } & x \geqslant 1, \\
0 & \text { si } & x<1 .
\end{array}\right.
\]

\begin{enumerate}
  \setcounter{enumi}{3}
  \item Soit \(U\) une variable aléatoire à densité de loi uniforme sur \(] 0,1[\).
\end{enumerate}

Soit \(i\) un entier compris entre 1 et \(n\). On pose \(V_{i}=\frac{1}{U^{1 / i}}\).\\
(a) Montrer que \(V_{i}\) suit la même loi que \(X_{i}\).\\
(b) Écrire une fonction en langage Python nommée simulX, prenant en argument d'entrée l'entier \(i\), et renvoyant une simulation de la variable aléatoire \(X_{i}\).

\section*{Partie II.}
Soit \(p\) un réel de \(] 0,1[\). On choisit un individu au hasard dans la population et on note \(Y\) la variable aléatoire égale au numéro de la catégorie socioprofessionnelle à laquelle cet individu appartient. On suppose que la variable aléatoire \(Y-1\) suit la loi binomiale \(\mathscr{B}(n-1, p)\).\\
5. En utilisant uniquement la fonction random du module numpy.random, écrire une fonction en langage Python nommée simulY, prenant en arguments d'entrée les paramètres \(n\) et \(p\), et renvoyant une simulation de la variable aléatoire \(Y\).\\
6. Recopier et compléter la fonction, en langage Python, nommée loiY, prenant en arguments d'entrée les paramètres \(n\) et \(p\), et renvoyant une liste ( \(p_{1}, \ldots, p_{n}\) ) où pour \(i\) compris entre 1 et \(n, p_{i}\) est une valeur approchée de \(\mathbb{P}(Y=i)\).

\begin{verbatim}
def loiY(n, p):
    N = 10000
    loi = [0] * n
    for k in _------- :
        y = simulY(n, p)
        loi[___] __-_
    return loi
\end{verbatim}

\begin{enumerate}
  \setcounter{enumi}{6}
  \item Écrire une fonction Python, prenant en arguments d'entrée les paramètres \(n\) et \(p\), permettant d'afficher un diagramme en bâtons représentant approximativement la loi de \(Y\). On représentera les valeurs de \(Y\) en abscisses et les probabilités correspondantes en ordonnées. On pourra utiliser les fonctions définies dans les questions précédentes, et l'annexe fournie en fin de sujet.
  \item Dans cette question, on suppose que chaque profession est identifiée de manière unique par un numéro appelé code PCS.\\
Par ailleurs, les différentes professions sont regroupées dans six grandes catégories socioprofessionnelles, que l'on identifie par un entier de 1 à 6 .\\
On dispose d'une base de données comportant trois tables nommées individu, departement et profession, décrites ci-dessous.
\end{enumerate}

\begin{itemize}
  \item La table individu contient des informations sur tous les individus de la population active française. Chaque entrée correspond donc à un individu. La table comporte les attributs suivants.
\end{itemize}

◇ i\_nom (de type TEXT) : le nom de l'individu.\\
◇ i\_prenom (de type TEXT) : le prénom de l'individu.\\
◇ i\_departement (de type INTEGER) : le numéro du département où réside l'individu.\\
◇ i\_insee (de type INTEGER) : le numéro INSEE (ou numéro de sécurité sociale) de l'individu.\\
◇ i\_code\_profession (de type INTEGER) : le code PCS identifiant la profession actuelle de l'individu.

\begin{itemize}
  \item La table departement contient des informations sur les départements français. Chaque entrée correspond à un département. La table comporte les attributs suivants.
\end{itemize}

◇ d\_numero (de type INTEGER) : le numéro du département.\\
◇ d\_nom (de type TEXT) : le nom du département.\\
◇ d\_population (de type INTEGER) : le nombre d'habitants vivant dans le département.

\begin{itemize}
  \item La table profession contient des informations sur toutes les professions recensées dans la base de données. Chaque entrée correspond donc à une profession différente. La table comporte les attributs suivants.
\end{itemize}

◇ p\_pcs (de type INTEGER) : le code PCS permettant d'identifier la profession.\\
◇ p\_categorie (de type INTEGER) : le numéro de la catégorie socioprofessionnelle (de 1 à 6) à laquelle la profession se trouve rattachée.\\
◇ p\_intitule (de type TEXT) : l'intitulé de la profession (par exemple, chirurgien dentiste).\\
(a) Que doit vérifier la clé primaire d'une table dans une base de données?\\
(b) Pour chacune des trois tables de la base de données de cet exemple, indiquer sans justification un attribut pouvant jouer le rôle de clé primaire.\\
(c) Dresser un schéma relationnel de la base de données décrite ci-dessus, en mettant en évidence les relations qui existent entre les tables et les attributs permettant d'établir ces relations.\\
On s'assurera que chaque table est reliée à au moins l'une des deux autres tables.\\
(d) Écrire une requête SQL renvoyant tous les codes PCS des professions exercées dans le département de l'Eure-et-Loir (numéro 28). Chaque code PCS ne pourra apparaître qu'une seule fois.\\
On pourra utiliser la commande DISTINCT décrite dans l'annexe fournie en fin de sujet.\\
(e) Écrire une requête SQL permettant d'obtenir le numéro de catégorie socioprofessionnelle (entre 1 et 6 ) de chaque individu.\\
La requête devra renvoyer deux attributs pour chaque individu : son numéro INSEE, et la catégorie socioprofessionnelle à laquelle est rattachée sa profession.

\section*{Partie III.}
Soit \(p\) un réel de \(] 0,1[\).\\
Un institut réalise un sondage selon le protocole suivant :

\begin{itemize}
  \item On choisit une catégorie socioprofessionnelle de manière aléatoire (mais sans équiprobabilité), et on note \(Y\) la variable aléatoire égale au numéro de la catégorie choisie.\\
Comme dans la Partie II, on suppose que \(Y-1\) suit la loi binomiale \(\mathscr{B}(n-1, p)\).
  \item On sélectionne alors un individu au hasard (avec équiprobabilité) dans la catégorie socioprofessionnelle choisie à l'étape précédente, et on note \(Z_{n}\) la variable aléatoire égale à son revenu mensuel, en milliers d'euros.\\
Enfin, on rappelle que, pour tout entier \(i\) compris entre 1 et \(n\), la fonction de répartition \(F_{i}\) de la variable aléatoire \(X_{i}\) est donnée par l'égalité (1) montrée à la question 3.\\
On note \(G_{n}\) la fonction de répartition de la variable aléatoire \(Z_{n}\).
\end{itemize}

\begin{enumerate}
  \setcounter{enumi}{8}
  \item Expliciter \(G_{n}(x)\) pour tout réel \(x\) strictement inférieur à 1 .
  \item Soit \(x\) un réel supérieur ou égal à 1 .\\
(a) Justifier que pour tout entier \(i\) compris entre 1 et \(n\) :
\end{enumerate}

\[
\mathbb{P}_{[Y=i]}\left(Z_{n} \leqslant x\right)=F_{i}(x) .
\]

(b) Montrer que :

\[
G_{n}(x)=\sum_{k=0}^{n-1} F_{k+1}(x)\binom{n-1}{k} p^{k}(1-p)^{n-1-k} .
\]

(c) En déduire que :

\[
G_{n}(x)=1-\frac{(p+(1-p) x)^{n-1}}{x^{n}} .
\]

\begin{enumerate}
  \setcounter{enumi}{10}
  \item Justifier que \(Z_{n}\) est une variable aléatoire à densité.
  \item En utilisant les fonctions simulX et simulY définies aux questions 4.(b) et 5, écrire une fonction en langage Python nommée sondage, prenant en arguments d'entrée les paramètres \(n\) et \(p\), et renvoyant une simulation de la variable aléatoire \(Z_{n}\).
  \item Dans cette question uniquement, on suppose que \(p=\frac{1}{n}\).\\
(a) Montrer que, pour tout \(x\) réel :
\end{enumerate}

\[
G_{n}(x)= \begin{cases}1-\frac{1}{x}\left(1-\frac{x-1}{n x}\right)^{n-1} & \text { si } x \geqslant 1, \\ 0 & \text { si } x<1 .\end{cases}
\]

(b) Montrer que la suite de variables aléatoires \(\left(Z_{n}\right)_{n \geqslant 1}\) converge en loi vers une variable aléatoire dont on déterminera la fonction de répartition.

Annexe A - Fonctions Python utiles\\
Manipulation de listes. On suppose que L désigne une liste à n éléments.

\begin{itemize}
  \item L'opérateur de concaténation +, appliqué entre deux listes, renvoie la liste obtenue en plaçant les éléments de la seconde liste à la suite de ceux de la première liste.\\[0pt]
Par exemple, [1, 2, 5] + [4, 3] renvoie la liste [1, 2, 5, 4, 3].
  \item L'opérateur *, appliqué entre une liste L et un entier n , renvoie la liste obtenue en concaténant n fois la liste L avec elle-même.\\[0pt]
Par exemple, [1, 4, 2] *3 renvoie la liste [1, 4, 2, 1, 4, 2, 1, 4, 2].
  \item La fonction len prend en argument d'entrée une liste et renvoie le nombre d'éléments dans cette liste.
  \item La commande \(L\).append \((x)\) permet d'inclure l'élément \(x\) à la fin de la liste \(L\).
\end{itemize}

La bibliothèque numpy.

\begin{itemize}
  \item Exemple d'importation : import numpy as np.
  \item Les opérations \(+,-, *, /, * *\), lorsqu'elles sont possibles, peuvent être réalisées entre deux tableaux Numpy de dimensions compatibles et agissent alors coefficient par coefficient.
  \item Les fonctions np.sqrt (racine carrée), np.abs (valeur absolue), np.log (logarithme népérien) et np.exp (fonction exponentielle) s'appliquent à une quantité numérique ou à un tableau Numpy de nombres. Dans ce dernier cas, les fonctions sont appliquées à chaque élément du tableau donné en argument d'entrée.
  \item La fonction np.linspace, prenant en arguments d'entrée deux flottants a et b et un entier n , renvoie un tableau Numpy contenant n éléments régulièrement espacés entre a et b inclus.\\
Exemple :
\end{itemize}

\begin{verbatim}
tableau = np.linspace(1.5, 4.5, 7)
print(tableau)
\end{verbatim}

\begin{verbatim}
>>> array([1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
\end{verbatim}

\section*{La bibliothèque matplotlib.pyplot.}
\begin{itemize}
  \item Exemple d'importation : import matplotlib.pyplot as plt.
  \item La fonction plt.plot prend en arguments d'entrée deux listes x et y de même longueur ou deux tableaux Numpy x et y à une ligne et de même longueur, et renvoie une figure constituée de la ligne brisée joignant les points du plan de coordonnées \(\left(x_{i}, y_{i}\right)\), où \(x_{i}\) et \(y_{i}\) sont respectivement les coefficients des tableaux x et y .
  \item La fonction plt.bar prend en arguments d'entrée deux listes x et y de même longueur ou deux tableaux Numpy x et y à une ligne et de même longueur, et produit un diagramme en bâtons, les coefficients de x indiquant les abscisses auxquels sont centrés les bâtons, et les coefficients de y déterminant la hauteur de chaque bâton en ordonnée.
  \item La fonction plt.show, employée sans argument d'entrée, permet l'affichage d'une figure préalablement tracée, par exemple avec les fonctions plt.plot ou plt.bar.
\end{itemize}

\section*{Le module numpy.random.}
\begin{itemize}
  \item Exemple d'importation : import numpy.random as rd.
  \item La fonction rd.random, appelée sans argument d'entrée, renvoie une simulation d'une variable aléatoire de la loi uniforme sur l'intervalle \([0,1[\). Il est également possible de spécifier les dimensions d'un tableau Numpy en argument d'entrée pour obtenir un tableau dont les coefficients sont des simulations de variables aléatoires indépendantes de la loi uniforme sur \([0,1[\).
  \item La fonction rd.randint prend deux entiers \(n\) et \(p\) (avec \(p>n\) ) en arguments d'entrée et renvoie une simulation d'une variable aléatoire de la loi uniforme discrète sur \(\llbracket n, p-1 \rrbracket\).
\end{itemize}

\section*{Annexe B - Commande SQL utile}
La commande SELECT DISTINCT. La commande SQL SELECT DISTINCT, utilisée à la place de la commande SELECT, permet de ne retenir qu'une occurrence de chaque valeur dans une colonne donnée, même si cette colonne comporte des valeurs qui se répètent.\\
Exemple : Une table etablissement contient les données suivantes concernant plusieurs établissements scolaires et la ville où ils se situent.

\begin{center}
\begin{tabular}{|c|c|c|}
\hline
id & nom & ville \\
\hline\hline
1 & Edouard Herriot & Livry-Gargan \\
\hline
2 & Diderot & Lyon \\
\hline
3 & Edouard Herriot & Lyon \\
\hline
4 & Louise Michel & Champigny-sur-Marne \\
\hline
5 & Diderot & Paris \\
\hline
\end{tabular}
\end{center}

La requête

\begin{verbatim}
SELECT DISTINCT nom
FROM etablissement;
\end{verbatim}

permet d'obtenir les différents noms d'établissements, sans répétition :

\begin{verbatim}
Edouard Herriot
Diderot
Louise Michel
\end{verbatim}

La commande SELECT DISTINCT peut éventuellement être combinée avec la commande WHERE pour filtrer une partie des entrées.


\end{document}