0

我正在研究贝叶斯定理,但发现很难提出某个查询。我正在使用 MySQL,这是我的架构:

CREATE TABLE Event (
    EVENTID  NUMBER(4)  NOT NULL,
    EVENT    CHAR(20)   NOT NULL,
    PRIMARY KEY (EVENTID)
);

CREATE TABLE EVENTDETAIL (
    EVENTID   NUMBER(4)    NOT NULL,
    LOCATION  VARCHAR(20)  NOT NULL,
    PRICE     VARCHAR(3)   NOT NULL,
    DOE       DATE         NOT NULL,
    CATEGORY  VARCHAR(29)  NOT NULL,
    SCORE     VARCHAR(3)   NOT NULL,
    FOREIGN KEY (EVENTID) REFERENCES EVENT(EVENTID)
);

我必须在eventdetail表中显示所有属性。例如,我必须显示 2013 年 3 月 18 日在格拉斯哥举行的事件的NAME所有EVENTDETAILS,但是有两个不同的事件具有不同的分数,我必须创建一个查询以显示得分最高的结果。

这是我正在尝试的查询的两行结果

EVENT                LOCATION             DOE       PRI SCO
-------------------- -------------------- --------- --- ---
Wicked               Glasgow              18-MAR-13 20  20
Rangers FC           Glasgow              18-MAR-13 34  29

我希望第二个排在首位,因为它的得分更高(29vs. 20)。

我怎样才能做到这一点?

4

1 回答 1

0

要选择得分最高的行,请使用带有 LIMIT 表达式的 ORDER BY 子句:

SELECT *
FROM   EVENTDETAIL
WHERE  LOCATION = 'Glasgow'
   AND DOE = '2013-03-18'
ORDER BY SCORE DESC
LIMIT 1

您的问题标题具有误导性,因为您已经有了分数。这个问题与计算贝叶斯模型分数没有任何关系。

于 2013-03-04T22:05:08.080 回答