SQL Query

Guten Tag,

ich habe folgendes Problem. Ich muss in den oberen Query das feld freq, welches ich unten markiert habe einfügen. Ich weiß nicht wie sich das ermittelt, besteht von eure Seite die Möglichkeit mir zu helfen?

[sql]SELECT coocTable.word, coocFreq, value
FROM (
SELECT word,
count(DISTINCT sentence.id) AS coocFreq
FROM
corpus
INNER JOIN
article ON corpus.id = article.corpusId
INNER JOIN
sentence ON article.id = sentence.articleId
INNER JOIN
term ON sentence.id = term.sentenceId
WHERE corpus.id = 1
AND sentence.id IN
(SELECT sentence.id
FROM
sentence
INNER JOIN
term ON sentence.id = term.sentenceId
WHERE word = ‘Merkel’
) GROUP BY word
ORDER BY coocFreq DESC)
AS coocTable
INNER JOIN sentiws on coocTable.word = sentiws.word[/sql]

[sql]“SELECT word, count(DISTINCT sentence.id) AS freq, count(DISTINCT article.id) AS art " +
“FROM " +
" corpus” +
" INNER JOIN” +
" article ON corpus.id = article.corpusId" +
" INNER JOIN" +
" sentence ON article.id = sentence.articleId" +
" INNER JOIN" +
" term ON sentence.id = term.sentenceId " +
"WHERE corpus.id = " + corpus.getId() +
" GROUP BY word " +
“ORDER BY freq DESC;”
);[/sql]

SChönen ABend und viele GRüße,
Tobias

was verstehst du unter ‘einfügen’ und ‘ermitteln’, was genau soll sich ändern?

meiner Ansicht nach ist das Konzept “count(DISTINCT sentence.id)” in der oberen Query auch schon vorhanden, nämlich als coocFreq,
das wird auch selectiert, danach sortiert, alles da?

ist ‘value’ ein Spaltenname? wie man an der SQL-Formatierung hier im Forum sieht, ist das keine gute Idee, Schlüsselwort

Guten Morgen,

ich habe in der Nacht weitergearbeitet und bin mitlerweile zu einer Lösung gekommen. Allerdings habe ich nun ein weiteres Problem.

MySql zeigt mir bei WHERE einen Fehler

SELECT word, DATE(createDate) AS corpusDate,
count(DISTINCT sentence.id) AS freq,
count(DISTINCT sentence.id) AS freq2 WHERE word = ‘Schalke’
FROM
corpus

Wie muss ich das umbauen damit die Abfrage…

count(DISTINCT sentence.id) AS freq2 WHERE word = ‘Schalke’

… korrekt ausgeführt wird?

Danke und schöne Grüße

Hi,

das ergib so leider keinen Sinn.

  1. select count (disctinct) gibt es nicht
  2. ist es immer select from where

Bitte auch demnächst die Fehlermeldung posten, wenn ein Fehler auftritt.

Bitte einmal fachlich beschreiben, was genau gemacht werden soll und wie die zugrundeliegende Datenstruktur aussieht.

Gruß,
Martin

Doch das gibt es. Mit Count(distinct) zählt man nur unique Werte. Alternativ könnte man auch einfach ein Group By nutzen, dass ist aber spätestens bei mehrfachen Counts nicht mehr ganz trivial

@where problem: dein Where steht vor dem From. Das ist syntaktisch falsch