MySQL与Oracle中分组、聚合函数的区别
今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。在MySQL环境中,我
今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。
在MySQL环境中,我模拟如下环境:
CREATE TABLE `room` (
`rid` varchar(5) default NULL,
`rname` varchar(5) default NULL,
`pid` int(11) default NULL,
`seq` int(11) NOT NULL auto_increment,
PRIMARY KEY (`seq`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
房间表,seq房间入住序号(主键),rname为房间名,这里不考虑第三范式
情景:人住房间,
统计某个房间某个人住的次数
用户表,客人的信息
CREATE TABLE `user1` (
`ID` int(11) NOT NULL auto_increment,
`USERNAME` varchar(50) default '',
`PASSWORD` varchar(50) default '',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
Mysql中语句如下:
select count(u.username),,r.rname,r.rid,r.pid
from room r,user1 u
where r.pid=u.id
group by r.rid,r.pid
这里r.rname并没有出现在group by子句、聚合函数中,但是MYSQL中仍然能够执行、列出数据。
但是,在Oracle中,却不能!!!!
Oracle环境中:
/*
--显示:Ora-00979 not a ORDER BY expression
--因为: order by 后边的c.channel_code不在ORDER BY子句中
select count(c.channel_name),m.media_name
from channel c,media m
where c.media_code = m.media_code
group by c.media_code,m.media_name
order by c.channel_code
--显示:Ora-00979 not a GROUP BY expression
--因为:group by 或者聚合函数中没有包含c.channel_name
select count(c.channel_name),m.media_name,c.channel_name
from channel c,media m
where c.media_code = m.media_code
group by c.media_code,m.media_name
*/
--通过:
select count(c.channel_name),m.media_name
from channel c,media m
where c.media_code = m.media_code
group by m.media_name
--正常
select count(c.channel_name),m.media_name
from channel c,media m
where c.media_code = m.media_code
group by c.media_code,m.media_name
--正常
select count(c.channel_code),m.media_name
from channel c,media m
where c.media_code = m.media_code
group by c.media_code,m.media_name

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Um die Oracle -Tablespace -Größe abzufragen, führen Sie die folgenden Schritte aus: Bestimmen Sie den Namen Tablespace, indem Sie die Abfrage ausführen: Wählen Sie Tablespace_Name aus dba_tablespaces. Abfragen Sie die Tablespace -Größe durch Ausführen der Abfrage: Summe (Bytes) als Total_Size, sum (bytes_free) als verfügbare_space, sum

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Deinstallieren Sie die Methode für Oracle -Installationsfehler: Schließen Sie den Oracle -Service, löschen Sie Oracle -Programmdateien und Registrierungsschlüssel, Deinstallieren Sie Oracle -Umgebungsvariablen und starten Sie den Computer neu. Wenn das Deinstall fehlschlägt, können Sie das Oracle Universal Deinstall -Tool manuell deinstallieren.

Es gibt drei Möglichkeiten, Instanznamen in Oracle anzuzeigen: Verwenden Sie den "SQLPLUS" und "Instance_name aus v $ Instance". Befehle in der Befehlszeile. Verwenden Sie den "show Instance_name;" Befehl in SQL*Plus. Überprüfen Sie die Umgebungsvariablen (Oracle_sid unter Linux) über den Task -Manager des Betriebssystems, den Oracle Enterprise Manager oder über das Betriebssystem.

Mit der Verschlüsselung von Oracle View können Sie Daten in der Ansicht verschlüsseln und so die Sicherheit sensibler Informationen verbessern. Die Schritte umfassen: 1) Erstellen des Master -Verschlüsselungsschlüssels (MEK); 2) Erstellen einer verschlüsselten Ansicht, der Ansicht und der Verschlüsselung der Ansicht und der MEK angeben; 3) Benutzern Sie die Benutzer, auf die verschlüsselte Ansicht zuzugreifen. Wie verschlüsselte Ansichten funktionieren: Wenn ein Benutzer nach einer verschlüsselten Ansicht nachgefragt wird, verwendet Oracle MEK, um Daten zu entschlüsseln und sicherzustellen, dass nur autorisierte Benutzer auf lesbare Daten zugreifen können.

Oracle -verstümmelte Probleme können gelöst werden, indem der Datenbankzeichen gesetzt wird, um sicherzustellen, dass sie mit den Daten übereinstimmen. Legen Sie den Client -Zeichen für die Datenbank fest. Konvertieren Sie Daten oder ändern Sie Spaltenzeichen -Sets so, dass sie Datenbankzeichen -Sets übereinstimmen. Verwenden Sie Unicode -Zeichensätze und vermeiden Sie Multibyte -Zeichensätze. Überprüfen Sie, ob die Spracheinstellungen der Datenbank und des Clients korrekt sind.

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Lösungen für Oracle können nicht geöffnet werden, einschließlich: 1. Starten Sie den Datenbankdienst; 2. Starten Sie den Zuhörer; 3.. Hafenkonflikte prüfen; 4. Umgebungsvariablen korrekt einstellen; 5. Stellen Sie sicher, dass die Firewall- oder Antivirus -Software die Verbindung nicht blockiert. 6. Überprüfen Sie, ob der Server geschlossen ist. 7. Verwenden Sie RMAN, um korrupte Dateien wiederherzustellen. 8. Überprüfen Sie, ob der TNS -Dienstname korrekt ist. 9. Netzwerkverbindung prüfen; 10. Oracle Software neu installieren.
