こんにちは、そのカテゴリに関心を持つ人の数が最大のカテゴリを返すクエリを作成しようとしています (それが理にかなっている場合)
とにかく、これまでのところ私の試みはここにあります..
SELECT category, MAX(catcount) FROM (
select category, catid, COUNT(id) AS catcount FROM (
SELECT DISTINCT empinterest.id, INTERESTCATEGORY.CATID AS catid, INTERESTCATEGORY.category FROM EMPINTEREST
INNER JOIN interest ON EMPINTEREST.INTID = INTEREST.ID
INNER JOIN interestcategory ON INTEREST.CATID = INTERESTCATEGORY.CATID
order by empinterest.id)
group by catid, category) GROUP BY category
最初のサブ選択でカテゴリとそのカテゴリに人々が持っている関心の量が得られることはわかっています。そのため、カウントで最大値を実行しようとしましたが、group by 句が最大値を停止していると思います返されます。HAVING 句を使用しようとしましたが、構文が正しくないように見えるので、誰かが私に手を貸してくれることを願っています。前もって感謝します!
それが役立つ場合は、ここに表があります。誰かがこれ以上明確にする必要がある場合は、私が提供します!
CREATE TABLE department
(
dptID INT NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL
);
CREATE TABLE interestcategory
(
catID INT NOT NULL PRIMARY KEY,
category VARCHAR(30) NOT NULL
);
CREATE TABLE employee (
id INT NOT NULL PRIMARY KEY,
title VARCHAR(10) NOT NULL,
fName VARCHAR(50) NOT NULL,
sName VARCHAR(50) NOT NULL,
jTitle VARCHAR(50) NOT NULL,
startDate DATE NOT NULL,
teamLead VARCHAR(50) NOT NULL,
employeeType VARCHAR(30) NOT NULL,
dptID INT NOT NULL REFERENCES department(dptID)
);
CREATE TABLE interest
(
id INT NOT NULL PRIMARY KEY,
interest VARCHAR(50) NOT NULL,
catID INT NOT NULL REFERENCES interestcategory(catID)
);
CREATE TABLE empinterest
(
id INT NOT NULL REFERENCES employee(id),
intID INT NOT NULL REFERENCES interest(id),
PRIMARY KEY (id, intID)
);