如果创建 SQL 视图,则可以从该视图中进行选择:
笔记:下面的查询和模式可以执行via SQL Fiddle。
存储过程
CALL companyProductions();
结果
| companies |
productions |
| 4 |
11 |
续集
sequelize
.query('CALL companyProductions()')
.then(data => console.log(data)); // [{ companies: 4, productions: 11 }]
架构
使用分隔符://
CREATE TABLE company (
id varchar(255) NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY (id)
)//
CREATE TABLE non_ceased_companies_prod_unit (
company_id varchar(255) NOT NULL,
units int,
CONSTRAINT FK_CompanyId FOREIGN KEY (company_id)
REFERENCES company(id)
)//
CREATE VIEW unit_frequency_by_company AS
SELECT company_id, COUNT(company_id) AS frequency
FROM non_ceased_companies_prod_unit
GROUP BY company_id
HAVING frequency > 1//
CREATE PROCEDURE companyProductions()
BEGIN
SELECT COUNT(*) AS companies, SUM(frequency) AS productions
FROM unit_frequency_by_company;
END//
架构数据
INSERT INTO company(id, name)
VALUES ('DK-10001560', 'Company A'),
('DK-10001587', 'Company B'),
('DK-10005809', 'Company C'),
('DK-10006511', 'Company D')//
INSERT INTO non_ceased_companies_prod_unit(company_id, units)
VALUES ('DK-10001560', 1),
('DK-10001560', 1),
('DK-10001587', 1),
('DK-10001587', 1),
('DK-10001587', 1),
('DK-10005809', 1),
('DK-10005809', 1),
('DK-10006511', 1),
('DK-10006511', 1),
('DK-10006511', 1),
('DK-10006511', 1)//