Maison base de données tutoriel mysql 【mysql】关于子查询的一个例子

【mysql】关于子查询的一个例子

Jun 07, 2016 pm 03:07 PM
linux mysql 例子 à propos 查询 进入

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 假设表my_tbl包含三个字段a,b,c;现在需要查询表中列a的每个不同值下的列b为最小值的记录量。 比如表记录为: a b c 1 3 'cd' 2 3 'nhd' 1 5 'bg' 2 6 'cds' 1 7 'kiy' 3 7 'vsd' 3 8 'ndf' 希望得到

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  假设表my_tbl包含三个字段a,b,c;现在需要查询表中列a的每个不同值下的列b为最小值的记录量。

  比如表记录为:

  a  b  c

  1  3  'cd'

  2  3  'nhd'

  1  5  'bg'

  2  6  'cds'

  1  7  'kiy'

  3  7  'vsd'

  3  8  'ndf'

  希望得到结果为:

  a  b  c

  1  3  'cd'

  2  3  'nhd'

  3  7  'vsd'

  (1)

  其中一个做法:先查出每个a值下的b最小值,然后根据这些最小值去查询符合要求的所有记录。

  查询符合最小b值的sql写法如下:

  select A.* from my_tbl as A where A.b=(select min(b) from my_tbl as B where B.a=A.a);

  由于是嵌套查询和取交集,80万条记录情况下竟然用一个小时也没把中间结果算出来(我真怀疑是自己哪里写错了);后面求记录量就免谈了。

  (2)

  上面的方法是个灾难, 只能弃用了。

  具体逻辑为:先按列a,b分组,然后选择每组中列b值最小的记录,生成结果集。

  sql语句写法如下:

  select a,b,c,count(a) from (select a,b,c from my_tbl group by a,b) as A group by a;

  执行查询后,时间竟只用了1.1秒。

  再一次证明,sql的查询策略的不同能直接导致性能上的巨大差异。

【mysql】关于子查询的一个例子

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Quelle est la différence entre la syntaxe pour ajouter des colonnes dans différents systèmes de base de données Quelle est la différence entre la syntaxe pour ajouter des colonnes dans différents systèmes de base de données Apr 09, 2025 pm 02:15 PM

不同数据库系统添加列的语法为 : MySQL: alter table table_name Ajouter Column_name data_type; postgresql: alter table table_name Add Column Column_name data_type; Oracle: alter table table_name add (chronn_name data_type); sql server: alter alter table_name Add Column_name data__

Comment récupérer les données après que SQL supprime les lignes Comment récupérer les données après que SQL supprime les lignes Apr 09, 2025 pm 12:21 PM

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.

Comment ajouter des colonnes dans des outils graphiques SQL? Comment ajouter des colonnes dans des outils graphiques SQL? Apr 09, 2025 pm 12:54 PM

Ajouter des colonnes dans l'outil graphique SQL: sélectionnez le tableau dans les colonnes que vous souhaitez ajouter. Cliquez avec le bouton droit et sélectionnez "Alter Table" ou des options similaires. Définit les propriétés de la nouvelle colonne (nom, type de données, longueur ou s'il est vide). Spécifie la valeur par défaut de la nouvelle colonne, le cas échéant. Sélectionnez le type de données approprié pour éviter les erreurs de données. Utilisez des noms de colonne significatifs. Considérez l'impact des performances lors de l'exécution d'opérations d'addition de colonnes sur de grandes tables. Sauvegardez toujours la base de données avant l'opération pour éviter la perte de données.

SQL supprimera-t-il les transactions de déclenchement de ligne? SQL supprimera-t-il les transactions de déclenchement de ligne? Apr 09, 2025 pm 12:03 PM

Si la ligne SQL Delete déclenche une transaction dépend de: 1. Le système de base de données (certains s'engage automatiquement, aucune transaction n'est requise); 2. Paramètres de session (les engagements automatiquement manuellement peuvent être activés ou désactivés); 3. Si la transaction est explicitement ouverte (meilleures pratiques pour assurer la cohérence des données).

Opérations clés de Linux: Guide du débutant Opérations clés de Linux: Guide du débutant Apr 09, 2025 pm 04:09 PM

Les débutants Linux doivent maîtriser les opérations de base telles que la gestion des fichiers, la gestion des utilisateurs et la configuration du réseau. 1) Gestion des fichiers: utilisez les commandes MKDIR, Touch, LS, RM, MV et CP. 2) Gestion des utilisateurs: utilisez des commandes UserAdd, Passwd, UserDel et UserMod. 3) Configuration du réseau: utilisez les commandes IFConfig, Echo et UFW. Ces opérations sont à la base de la gestion du système Linux, et les maîtriser peut gérer efficacement le système.

Comment construire une base de données SQL Comment construire une base de données SQL Apr 09, 2025 pm 04:24 PM

La construction d'une base de données SQL comprend 10 étapes: sélectionner des SGBD; Installation de SGBD; créer une base de données; créer une table; insérer des données; récupération de données; Mise à jour des données; supprimer des données; gérer les utilisateurs; sauvegarde de la base de données.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

See all articles